Javascript 如何通过匹配部分属性来使用jQuery选择元素?
例如,我希望匹配在其任何属性中包含“data foo”的所有元素:Javascript 如何通过匹配部分属性来使用jQuery选择元素?,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,例如,我希望匹配在其任何属性中包含“data foo”的所有元素: <a data-foo="abc" href="#">I'm Matched</a> <a data-foo-bar="abc" href="#">I'm Matched Too</a> <a data-foo-bar-baz="abc" href="#">I'm Matched Too</a> <a data-bar-foo="abc" href=
<a data-foo="abc" href="#">I'm Matched</a>
<a data-foo-bar="abc" href="#">I'm Matched Too</a>
<a data-foo-bar-baz="abc" href="#">I'm Matched Too</a>
<a data-bar-foo="abc" href="#">I'm Not Matched</a>
我可以轻松地遍历所有元素并检查自己,但我不确定jQuery是否支持这种类型的选择器。Satpal的答案非常好(我喜欢选择器仅限于
或类别:
<a class="foo" data-foo="abc" href="#">I'm Matched</a>
<a class="foo" data-foo-bar="abc" href="#">I'm Matched Too</a>
<a class="foo" data-foo-bar-baz="abc" href="#">I'm Matched Too</a>
<a data-bar-foo="abc" href="#">I'm Not Matched</a>
通过这种方式,您可以匹配一件事情(要么是
data foo
要么是classfoo
),并获得您所需的特定性。检查这把小提琴……稍微有一点,但也许您可以解决这个问题
谢谢。你有消息来源吗?@AlienArrays-OP编辑了他的原始代码并修复了它。查看
:contains()
我为您设置了一个答案,以匹配任何元素,该元素的属性包含您选择的字符串。我知道我可以很容易地添加一个类,但这违背了我问题的目的。我选择这些元素没有问题,我只想通过部分属性名称进行选择。(点头)我明白了,但我不知道怎么做,所以我只是建议重新调整你的架构,提供一些通用和特定的信息。也就是说,“这是一个foo,但更具体地说是一个foo条”。有点像ID(特定)和class(通用)之间的区别Dayumn先生,这正是我想要的。谢谢你帮我减肥!哈哈,这太完美了。这正是我想要的。谢谢你!
<a class="foo" data-foo="abc" href="#">I'm Matched</a>
<a class="foo" data-foo-bar="abc" href="#">I'm Matched Too</a>
<a class="foo" data-foo-bar-baz="abc" href="#">I'm Matched Too</a>
<a data-bar-foo="abc" href="#">I'm Not Matched</a>
$("a").each(function(){
var element = $(this);
var isItMe = 0;
$(element[0].attributes).each(function() {
if(this.nodeName.indexOf("data-bar") >= 0){
isItMe = 1;
}
});
if(isItMe == 1){
$(this).css({"color" : "red"});
}
});