我有一个包含选择列表的变量,然后我需要过滤并只查找具有值为'EventType'的dependsOn属性的那些。
我尝试了以下但它没有找到select并返回0:
var selects = $("select");
var count = selects.find("[dependsOn='EventType']").length
alert(count);
我写了下面哪个有效,但是不是更方便吗?
var dependents = [];
selectLists.each(function() {
var dep = $(this).attr('dependsOn');
if (dep === undefined) return;
dependents.push(dep.val());
});
答案 0 :(得分:5)
如果该属性位于实际的select
标记上,请执行以下操作:
var selects = $("select[dependsOn='EventType']");
虽然dependsOn
似乎不是一个有效的属性。查看自定义data-*
属性以获得完全有效的HTML。
答案 1 :(得分:3)
请参阅the documentation for find:
获取当前匹配元素集中每个元素的后代,由选择器,jQuery对象或元素进行过滤。
您想使用filter
:
将匹配元素集合减少到与选择器匹配的元素或通过函数测试。
selects.filter("[dependsOn='EventType']").length
或者,只需将条件放在初始选择器中:
$("select[dependsOn='EventType']").length;
答案 2 :(得分:0)
如果您使用data
属性
然后你可以这样做:
var selects = $("select");
selects.find('[data-dependsOn="EventType"]').length;
alert(count);
find()
用于选择子元素,如果要定位select
元素,可以使用:
var selects = $('select[data-dependsOn="EventType"]').length;
alert(count);
答案 3 :(得分:0)
尝试使用浏览器的控制台(我正在使用chrome)并使用它:
selects = $("select[dependsOn='EventType']");
它对我来说很好。 希望它有所帮助!!