我是jQuery的新手。我知道您可以使用$('.selector [attribute=value]')
选择dom中的对象,但是可以同时使用多个属性吗?
例如:
$('.selector [attribute=value], [attribute2=value2]')
答案 0 :(得分:4)
是。你如何做到这取决于你想做什么。如果要匹配任一属性,请使用逗号运算符和完整选择器:
Like $('.selector [attribute=value], .selector [attribute2=value2]')
如果您希望元素与两个属性匹配,则只需将它们堆叠在一起:
Like $('.selector [attribute=value][attribute2=value2]')
另请注意,space是一个运算符,因此选择器.selector [attribute=value]
匹配具有类selector
的元素内具有给定属性的元素,而选择器.selector[attribute=value]
与元素匹配类selector
和给定的属性。
答案 1 :(得分:3)
这取决于你想要的东西:
选择具有两个属性的元素:
$('.selector[attribute=value][attribute2=value]')
选择具有以下任一属性的元素:
$('.selector[attribute=value], .selector[attribute2=value]')
答案 2 :(得分:1)
$('.selector [attribute=value][attribute2=value2]')
答案 3 :(得分:1)
语法为:
$(".selector[attribute=value][attribute2=value2]")
但是如果你发现自己必须创建复杂的属性过滤器,那么使用filter()
函数可能是一个更清晰的选择:
$(".selector").filter(function () {
var $el = $(this);
return $el.attr("attribute") === value &&
$el.attr("attribute2") === value2;
})
答案 4 :(得分:0)
你确定可以。您建议的选择器将选择两个组.selector [attribute=value]
和[attribute2=value2]
。如果您想要两者,$('.selector [attribute=value][attribute2=value2]')
是正确的语法。
答案 5 :(得分:0)
将此HTML作为样本:
<a rel="foo">Stack Overflow</a>
<a class="bar">Server Fault</a>
这应该可以解决问题:
$("a[rel='foo'], a[class='bar']")
答案 6 :(得分:0)
您可以使用.filter()执行此操作。
$('li').filter("[attribute1=value1]")
.filter("[attribute2=value2]");