我想仅在具有自定义数据属性(data-title
)设置的元素上执行单击功能。目前,它们只是a
和button
元素。
为什么即使没有设置a
,此代码也会在所有 button
和data-title
元素上执行?
$('a[data-title!=""], button[data-title!=""]').on('click', function() {
// do something
});
我应该改变什么?
答案 0 :(得分:2)
$('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 !== ""
。