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 (この場合は.firstand )を持つ属性を持つすべての入力を検索したいと考えています.third。入力が 3 のこの場合の解決策は必要ありませんが、50 の入力があり、THE-VALUE を含む属性がすべて異なる場合です。.attr(':contains("THE-VALUE")')や などを試し$('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 に答える