我是jQuery的新手。我知道你可以使用$('.selector [attribute=value]')
来选择dom中的对象,但是可以同时使用多个属性?是否可以在jQuery选择器中使用多个属性?
例如:
$('.selector [attribute=value], [attribute2=value2]')
我是jQuery的新手。我知道你可以使用$('.selector [attribute=value]')
来选择dom中的对象,但是可以同时使用多个属性?是否可以在jQuery选择器中使用多个属性?
例如:
$('.selector [attribute=value], [attribute2=value2]')
的语法是:
$(".selector[attribute=value][attribute2=value2]")
但是,如果你发现自己有创建复杂的属性过滤器,使用filter()
功能可能是一个更清洁的替代:
$(".selector").filter(function() {
var $el = $(this);
return $el.attr("attribute") === value &&
$el.attr("attribute2") === value2;
})
+1了解更多解决方案。 – andlrc 2012-03-19 18:53:56
$('.selector [attribute=value][attribute2=value2]')
Downvoter ,谨慎解释?我在这里没有看到任何问题。 – 2012-03-19 18:51:41
+1 downvote – andlrc 2012-03-19 18:53:32
是。你怎么做取决于你想做什么。如果你想匹配任何属性,你用逗号和完整的选择:如果你想要的元素同时匹配属性
Like $('.selector [attribute=value], .selector [attribute2=value2]')
,你只是堆叠在一起后对方:
Like $('.selector [attribute=value][attribute2=value2]')
注意,空间是一个操作符,所以选择与和类selector
的元件内的给定的属性相匹配.selector [attribute=value]
元件,同时兼具与类选择.selector[attribute=value]
匹配元素和给定的属性。
你当然可以。您建议的选择器将选择两个组,.selector [attribute=value]
和[attribute2=value2]
。如果你想要两个,$('.selector [attribute=value][attribute2=value2]')
是正确的语法。
鉴于这种HTML作为样本:
<a rel="foo">Stack Overflow</a>
<a class="bar">Server Fault</a>
这应该做的伎俩:
$("a[rel='foo'], a[class='bar']")
您可以使用.filter()做到这一点。
$('li').filter("[attribute1=value1]")
.filter("[attribute2=value2]");
这取决于你想要什么:
选择具有两个属性的元素:
$('.selector[attribute=value][attribute2=value]')
与任一属性选择元素:
$('.selector[attribute=value], .selector[attribute2=value]')
http://api.jquery.com/multiple-attribute-selector/ – Blazemonger 2012-03-19 18:50:35