jQuery:如何选择包含x的属性的子元素?

时间:2014-07-10 05:25:03

标签: javascript jquery html jquery-selectors

我们说我有一些带有项目的无序列表,还有一个或多个有一个活跃的类别

<ul id='list'>
  <li class='row active'></li>
  <li attrA='something active'></li>
  <li attrB='active'></li>
</ul>

<ul id='otherList'>
  <li class='row active'></li>
  <li attrA='something active'></li>
  <li attrB='active'></li>
</ul>

我想获得课程所在的项目#34;活跃&#34;这是无序列表的子元素或元素,&#34; list&#34;。

我试过......

  • $("#list li[class~='active']")
  • $("#list > li[class~='active']")

但无济于事......

这是我的问题的更详细版本。用于打印此输出的代码是......

  1. var listId = "typeahead-3-6260";
  2. console.log( $("#"+listId+" li") );
  3. console.log( $("#"+listId+" li[class~='active']") );
  4. 如您所见,第2行有一些结果,但第3行没有。

    Pic

3 个答案:

答案 0 :(得分:0)

$("#list li").filter(function(){return $(this).attr('name').indexOf("name") >= 0)

答案 1 :(得分:0)

使用element.attributes获取属性列表,并使用nodeValue获取属性值,以检查其是否为active

<强> Live Demo

$("#list li").each(function(){   
  for(i=0; i < this.attributes.length; i++)
     if(this.attributes[i].nodeValue.indexOf('active') != -1)
         $(this).text('has active attribute');
});

答案 2 :(得分:0)

正如您所提到的,您需要查看课程&#39;属性为&#39;活跃&#39;这是可以帮助你的代码

$(document).on('click','#list>li.active',function(){
    alert('I am here');
});

JSFiddle