0

hasData がチェーンに存在するかどうかを確認することは可能ですか?

例えば:

<div data-foo="yes">Foo</div>

$("div").hasData("foo").css("color","red");
4

4 に答える 4

3

jQuery のメソッド チェーンは、依然として JS の規則に従います。hasDataブール値を返し、ブール値には jQuery メソッドがないため、これは機能しません。

これを行う最も簡単な方法は、元のコレクションが既にフィルター処理されるようにセレクターを変更することです。

$("div[data-foo]")
于 2013-04-01T20:48:58.030 に答える
2

.filter代わりに使用してみてください:

$("div").filter(function(){
    return $(this).data("foo");
}).css("color","red");

または、属性セレクターだけでも:

$("div[data-foo]").css("color","red");
于 2013-04-01T20:49:19.367 に答える
1
(function ($) {
    $.fn.hasData = function (data) {
        if (this.data(data)) return this;
        else return null;
    };
})(jQuery);
于 2013-04-01T20:58:20.920 に答える
0

デモ

$("div[data-foo=yes]").css("color","red");
于 2013-04-01T20:50:13.253 に答える