【问题标题】:How can i find an element with a custom attribut that equals a specific value?如何找到具有等于特定值的自定义属性的元素?
【发布时间】:2011-05-14 08:39:16
【问题描述】:

我正在尝试使用 .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彼此相等时找到它的匹配项(注意:只会有一个匹配项),并将其附加在第一个或原始之后。

【问题讨论】:

  • 也许你需要.containercontainer 将匹配元素 container。另请注意,$('container ul li').attr('pid'); 将始终为您提供与container ul li 匹配的第一个元素的pid。这是你想要的吗?请提供更多详细信息。
  • 我刚刚更新了它,希望这更有意义。感谢您的帮助。

标签: jquery loops custom-attributes each


【解决方案1】:

这将找到任何lipid 不是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];
    }
}

此代码将生成一个列表列表。您可以通过访问groups[pid] 来访问具有给定pid 的所有项目,因此具有pid = 5 的所有项目都将在groups[5] 中。

【讨论】:

  • 是的,我需要找到 pid 不等于 0 的任何 li,然后我需要再次搜索该列表并找到 pid 匹配的位置。这有意义吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-03
  • 2021-06-30
  • 2016-07-21
  • 2017-02-04
  • 1970-01-01
  • 2013-04-24
相关资源
最近更新 更多