Получить количество дт с JQuery - PullRequest
0 голосов
/ 05 августа 2011
<dl>
<dt>1</dt>
<dd></dd>
<dt>2</dt>
<dd></dd>
<dt>3</dt>
<dd></dd>
<dt>4</dt>
<dd></dd>
<dt>5</dt>
<dd></dd>
</dl>

Как получить индекс элемента dt, когда пользователь нажимает на него?Пятый дт должен дать 4, первый 0.

$('dt').click(function(){
var index = 'how to?';
alert('current dt index is ' + index);
});

Ответы [ 2 ]

4 голосов
/ 05 августа 2011

Вы можете сделать:

$('dt').click(function(){
   var index = $(this).prevAll('dt').length;
   alert('current dt index is ' + index);
});

скрипка здесь: http://jsfiddle.net/nicolapeluchetti/erUPs/

РЕДАКТИРОВАТЬ - Если вам нужно просто добавить класс к следующему дд, вы можете сделать:

$('dt').click(function(){
    $(this).next('dd').addClass('myclass')

});

скрипка здесь: http://jsfiddle.net/nicolapeluchetti/erUPs/2/

2 голосов
/ 05 августа 2011
$('dt').bind('click', function () {
    var index = $(this).parent().children('dt').index(this);
});

См. Метод children(), который принимает селектор, и метод index().

Редактировать:

Добавить класс к нажатой dt, используя метод addClass():

$('dt').bind('click', function () {
    var self = $(this);
    var index = self.parent().children('dt').index(this);

    self.addClass("foo-" + index);
});    

Я назначил $(this) на self,чтобы $(this) не вычислялось ненужное количество раз.

...