Как я могу найти элемент с пользовательским атрибутом, который равен определенному значению? - PullRequest
2 голосов
/ 14 мая 2011

Я пытаюсь использовать цикл .each, чтобы найти конкретные элементы в списке, которые, когда пользовательский атрибут "pid" не равен 0, могут выполнять действие.Как я могу найти каждый элемент?пока у меня есть:

$.each($('.container ul li'),function() {
  var pid = $('.container ul li').attr('pid');
  $(this).remove().after($("container ul li[pid='"+pid+"']"));

  });

, но это ничего не делает здесь.Может ли кто-нибудь помочь, пожалуйста?

По сути, я пытаюсь взять каждый элемент в списке и сгруппировать их по атрибуту "pid", поэтому я ищу в списке, когда pid не равен 0, затем мне нужно найти его снова и найти его совпадение, когда каждый pid равен друг другу (примечание: совпадение будет только одно), и добавить его после первого или оригинала.

1 Ответ

2 голосов
/ 14 мая 2011

Это найдет любой li с pid, который не 0, если это то, что вы хотите. Затем он начнет группировать элементы по pid.

var groups = [];

$('.container ul li[pid][pid!="0"]').each(function(){
    var pid = this.getAttribute("pid");

    if(groups[pid]){
        groups[pid].push(this);
    }else{
        groups[pid] = [this];
    }
}

Этот код выдаст список списков. Вы можете получить доступ ко всем элементам с данным pid, набрав groups[pid], поэтому все элементы с pid = 5 будут в groups[5].

...