1

我在想是否有办法找到元素的属性是否包含指定的值。属性未知。如果我有这个 HTML:

    <input class="first" type="checkbox" data="THE-VALUE" />
    <input class="second" type="checkbox" />
    <input class="third" type="checkbox" name="THE-VALUE" />

我想找到所有具有值为THE-VALUE 的属性的输入(在本例中为.first.third)。对于这种输入为 3 的情况,我不需要解决方案,但如果我有 50 个输入并且包含 THE-VALUE 的属性都不同。我尝试过类似.attr(':contains("THE-VALUE")')and的方法$('input[="THE-VALUE"]'),但由于明显的原因,它不起作用。

所以我的问题是..有什么办法可以找到吗?

4

1 回答 1

6
$("input").filter(function() {
    return $.grep(this.attributes, function(arg) {
        return arg.nodeValue === "THE-VALUE";
    }).length > 0;
}).prop("checked", true);

演示:http: //jsfiddle.net/7tsZN/


或作为选择器扩展:

$.expr[':'].hasattrval = function(e, i, p) {
    return $.grep(e.attributes, function(arg) {
        return arg.nodeValue === p[3];
    }).length;
};

$("input:hasattrval('THE-VALUE')").prop("checked", true);

演示:http: //jsfiddle.net/7tsZN/1/

于 2013-01-21T10:31:25.997 回答