Javascript 如何通过匹配部分属性来使用jQuery选择元素?

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=

例如,我希望匹配在其任何属性中包含“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="#">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
要么是class
foo
),并获得您所需的特定性。

检查这把小提琴……稍微有一点,但也许您可以解决这个问题


谢谢。你有消息来源吗?@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"});  
    }
});