jQuery hasData作为链?

时间:2013-04-01 20:46:48

标签: jquery

是否可以检查链中是否存在hasData?

E.g:

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

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

4 个答案:

答案 0 :(得分:3)

jQuery方法链仍然遵守JS的规则。由于hasData返回布尔值,而布尔人没有jQuery方法,因此无效。

最简单的方法是修改选择器,以便已经过滤原始集合:

$("div[data-foo]")

答案 1 :(得分:2)

请尝试使用.filter

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

甚至只是一个属性选择器:

$("div[data-foo]").css("color","red");

答案 2 :(得分:1)

(function ($) {
    $.fn.hasData = function (data) {
        if (this.data(data)) return this;
        else return null;
    };
})(jQuery);

答案 3 :(得分:0)

Demo

$("div[data-foo=yes]").css("color","red");