Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выделить следующий элемент (https://javascript.ru/forum/jquery/31136-vydelit-sleduyushhijj-ehlement.html)

red-nicolas 28.08.2012 10:47

Выделить следующий элемент
 
Есть форма input за ней следует блок div. Таких пар много. Как мне выделить один див, который следует за input, на котором фокус?

$("input").focus(function() {	
		$("input+div:first").addClass("red");
})


Крд выше выделяет все дивы после инпутов, как его доделать?

yura_remnev 28.08.2012 11:07

$("input").focus(function() {	
		// $("input+div:first").addClass("red");
		$(this).next('div').first().addClass("red");
})

red-nicolas 28.08.2012 11:13

Цитата:

Сообщение от yura_remnev (Сообщение 201093)
$("input").focus(function() {	
		// $("input+div:first").addClass("red");
		$(this).next('div').first().addClass("red");
})

Спасибо, оказалось очень просто.

red-nicolas 28.08.2012 13:13

Почему не работает?

function inpurLimit(){
		var maxLen = 20;
		var $this = $(this);
		if($this.val().length> maxLen){
			$this.val($this.val().substr(0, maxLen));
		}
		var stringLength=$this.val().length;
		if(stringLength<= maxLen){
			$(this).next('div').first().text(maxLen-stringLength);
		}
	}
	$("input").keydown(inpurLimit());


И как правильно писать функции вне событий, а потом по событию их вызывать?

Deff 28.08.2012 13:17

function inpurLimit(a){
		var maxLen = 20;
		if(a.val().length> maxLen){
			aval(a.val().substr(0, maxLen));
		}
		var stringLength=a.val().length;
		if(stringLength<= maxLen){
			a.next('div').first().text(maxLen-stringLength);
		}
	}

$("input").keydown(function() { 
  inpurLimit($(this))
});

red-nicolas 28.08.2012 13:35

Цитата:

Сообщение от Deff (Сообщение 201147)
function inpurLimit(a){
		var maxLen = 20;
		if(a.val().length> maxLen){
			aval(a.val().substr(0, maxLen));
		}
		var stringLength=a.val().length;
		if(stringLength<= maxLen){
			a.next('div').first().text(maxLen-stringLength);
		}
	}

$("input").keydown(function() { 
  inpurLimit($(this))
});

в четвертой строке забыли точку, а то частично работает. За ответ спасибо.

red-nicolas 28.08.2012 15:32

Есть еще вопрос. Как в jq сделать редирект к элементу с якорем id?

LittlePony 28.08.2012 15:46

именно редирект? Перенаправить браузер на другой адрес, но чтобы и якорь учитывался?
window.location.href="http://some.site/page.html#anchor"


а если на той же странице перейти, то проще:
$("html,body").animate({scrollTop:$("#anchor").offset().top})


Часовой пояс GMT +3, время: 05:07.