我有一些li
元素,其中一些li
有一个属性data-brandId
,而其中一些没有这个属性。ul
我有我从中过滤它的父母:
var selectedLis = new Array();
$('ul').children('li').each(function(){
if($(this).attr(attribute) != null) {
selectedLis.push($(this));
}
});
有没有更好的方法来实现这一点?喜欢通过使用filter
等?
更新:
我正进入(状态TypeError: $(...).data(...) is undefined
呈现的 HTML 为:
<li data-entityid="WF/008/DAM" class="dropdownli filterItem">
<input type="checkbox" data-entityid="WF/008/DAM" value="WF/008/DAM/014" name="damBrand">
<label>E&W Portfolio</label>
</li>
这给了我错误:
var lis = $('ul[name=damBrandMenu]').children('li').filter(function(){
return $(this).data('entityId').length;
});
还说我在 中没有 data-entityId li
,而是在作为 li 的子元素的 input[type="checkbox"] 中有这个属性,正如您在 HTML 中看到的那样。那么过滤的方式是什么?是吗:
var lis = $('ul[name=damBrandMenu]').children('li').filter(function(){
return $('> input[type="checkbox"]', this).data('entityid').length;
});
我也试过:$(this).attr('data-entityId').length;
和$('> input[type="checkbox"]', this).attr('data-entityId').length;
,但他们也没有工作。我有同样的错误;TypeError: $(...).attr(...) is undefined
.