我想检查某个元素是否具有 data-youtube-id
或 data-youtube-id
的 data
属性并运行基于此的东西(基本上阻止链接通过)。
如何同时检查这两个属性?
这是我正在使用的,但它无法正常工作:
HTML
<a href="#" data-youtube-id="xxxxxx">link title 1</a>
<a href="#" data-vimeo-id="xxxxxx">link title 2</a>
jQuery
$('a').click(function(e) {
if ($(this).data('youtube-id, vimeo-id')) {
e.preventDefault();
}
});
我还尝试使用 attr();
而不是 data();
类似的 jQuery(也不起作用):
$('a').click(function(e) {
if ($(this).attr('data-youtube-id, data-vimeo-id')) {
e.preventDefault();
}
});
最佳答案
使用has attribute selector以及is()
if ($(this).is('[data-youtube-id], [data-vimeo-id]')){
}
两者data(string) & attr(string)是获取所述数据/属性值的值的 getter 方法
<小时/>正如@Brilliand所说,您可以在注册点击处理程序之前过滤掉元素。如果这是您完整的点击处理程序代码
$('a').filter('[data-youtube-id], [data-vimeo-id]').click(function (e) {
e.preventDefault();
});
关于javascript - jQuery OR 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21175453/