JQUERY each (), определяющий количество совпадений, чтобы вы могли действовать только на последний - PullRequest
2 голосов
/ 22 июля 2010

При использовании JQUERY.each (), каким образом можно получить значение совпадающих элементов. Я хотел бы заключить IF в each (), чтобы действовать только в последнем матче. ТНХ

Ответы [ 5 ]

4 голосов
/ 22 июля 2010

Метод .each () сообщает вам, с каким элементом индекса вы сейчас работаете.

$.each(myItems, function(index, value) { 
    if(index == myItems.length-1)
        doStuff(value);
});

Может быть проще просто проиндексировать последний элемент, например:

doStuff(myItems[myItems.length-1]);
4 голосов
/ 22 июля 2010

Это кажется расточительным.Вместо этого просто выберите элемент последний и действуйте по нему.Например:

$("td:last").hide();
$("p:last").hide();
1 голос
/ 22 июля 2010

вместо каждого вы можете использовать :last, если хотите, чтобы в вашем скрипте был только последний элемент ваших элементов DOM, например,

 <ul class="myUls">
     <li>one</li>
     <li>two</li>
     <li>three</li>
</ul>

, вы можете сказать

var last = $('.myUls li:last');

DOM последней будет <li>three</li>

, более того, если вы хотите выбрать индекс массива элемента DOM, который вы можете использовать: eq () скажем, например, вы хотите выбратьDOM <li>two</li> вы можете сделать.

var two = $('.myUls li:eq(1)');

, который даст вам два как <li>two</li>

0 голосов
/ 22 июля 2010

Селектор :last. Однако, в общем, если вы хотите узнать позицию элемента, по которому вы перебираете код .each(), он передается обратному вызову.

$('.selector').each(function(index, elem) {
    //index gets the position of the current elem
});
0 голосов
/ 22 июля 2010

Как упоминает BrunoLM, вам, вероятно, следует просто использовать селектор :last.

Если вы хотите узнать количество совпадений по любой другой причине, вы можете использовать .size() или .length

, например

$("b").each(function(i) {
  if (i == $("b").size() - 1) {
    // do stuff
  }
});
...