查找某些元素的属性是否包含特定值

Пан*_*лев 1 javascript jquery

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

    <input class="first" type="checkbox" data="THE-VALUE" />
    <input class="second" type="checkbox" />
    <input class="third" type="checkbox" name="THE-VALUE" />
Run Code Online (Sandbox Code Playgroud)

我想找到所有已与属性值的输入THE-VALUE(在这种情况下,.first.third).对于输入为3的情况,我不需要解决方案,但如果我有50个输入且包含THE-VALUE的属性都不同.我曾尝试之类的东西.attr(':contains("THE-VALUE")')$('input[="THE-VALUE"]'),但显而易见的原因,这是行不通的.

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

Vis*_*ioN 6

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

演示: 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);
Run Code Online (Sandbox Code Playgroud)

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

  • 一个非常好的解决一个可怕的问题:) (4认同)