访问某些元素的所有自定义数据属性

时间:2013-10-30 02:13:48

标签: jquery custom-data-attribute

我想仅在具有自定义数据属性(data-title)设置的元素上执行单击功能。目前,它们只是abutton元素。

为什么即使没有设置a,此代码也会在所有 buttondata-title元素上执行?

$('a[data-title!=""], button[data-title!=""]').on('click', function() {
    // do something
});

我应该改变什么?

2 个答案:

答案 0 :(得分:2)

使用Has Attribute Selector

$('a[data-title], button[data-title]').on('click', function() {
    // do something
});

答案 1 :(得分:1)

您需要的是attribute exists selector

$('a[data-title], button[data-title]').on('click', function() {
    // do something
});

为什么?
在您的情况下,您正在检查data-title!="",但如果该元素没有属性data-title,则属性值将为null而不是""(空字符串),因此测试result !== check将返回true null !== ""