[英]jQuery Selecting Elements That Have Class A or B or C
我在需要两个功能的地方工作。
1-我需要查看一组在同一父项下的孩子,并基于类名“ active”,将该元素的ID添加到数组中。
['foo-a','foo-b','foo-d']
2-然后,我遍历另一个父级中的所有子级,对于每个元素,我想找出它是否具有与数组中的ID相匹配的类名。
这个元素是否具有foo-a,foo-b或foo-d类?
var activeGroups = $('#parent .active').map(function() {
return this.id;
}).get();
这为您提供了一组ID值(例如['foo-a', 'foo-d']
)。 然后,您可以使用join
创建一个.foo-a, .foo-b, .foo-c
之类的选择器 ( 多重选择器 ):
var activeSelector = '.' + activeGroups.join(', .');
这将生成一个有效的jQuery选择器字符串,例如'.foo-a, .foo-d'
。 然后,您可以使用此选择器使用find
查找所需的元素:
var activeEls = $('#secondParent').find(activeSelector);
然后,您可以使用activeEls
做任何您需要做的事情。
var active = $("#foo").find(".active").map(function() {
return this.id;
}).get();
$("#anotherParent *").each(function() {
var that = this;
var classes = $(this).attr("class");
if(classes.indexOf(" ") !== -1) {
classes = classes.split(" ");
} else {
classes = [ classes ];
}
$.each(classes, function(i, val) {
if($.inArray(val, active)) {
// this element has one of 'em, do something with it
$(that).hide();
}
});
});
总是有.is('.foo-a, .foo-b, .foo-d')
。 或者,如果您实际上只是想选择它们,而不是为每个元素进行迭代和决定,则使用$('.foo-a, .foo-b, .foo-d', startingPoint)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.