私は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
なく、代わりに、HTMLでわかるように、liの子であるinput [type="checkbox"]にこの属性があると言います。では、フィルタリングの方法は何でしょうか?それは...ですか:
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
。