hasData がチェーンに存在するかどうかを確認することは可能ですか?
例えば:
<div data-foo="yes">Foo</div>
$("div").hasData("foo").css("color","red");
hasData がチェーンに存在するかどうかを確認することは可能ですか?
例えば:
<div data-foo="yes">Foo</div>
$("div").hasData("foo").css("color","red");
jQuery のメソッド チェーンは、依然として JS の規則に従います。hasData
ブール値を返し、ブール値には jQuery メソッドがないため、これは機能しません。
これを行う最も簡単な方法は、元のコレクションが既にフィルター処理されるようにセレクターを変更することです。
$("div[data-foo]")
.filter
代わりに使用してみてください:
$("div").filter(function(){
return $(this).data("foo");
}).css("color","red");
または、属性セレクターだけでも:
$("div[data-foo]").css("color","red");
(function ($) {
$.fn.hasData = function (data) {
if (this.data(data)) return this;
else return null;
};
})(jQuery);
$("div[data-foo=yes]").css("color","red");