javascript - jQuery OR 运算符?

标签 javascript jquery jquery-selectors

我想检查某个元素是否具有 data-youtube-iddata-youtube-iddata 属性并运行基于此的东西(基本上阻止链接通过)。

如何同时检查这两个属性?

这是我正在使用的,但它无法正常工作:

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/

相关文章:

javascript - React Native 中首先触发的是什么?

jquery - 在 Bootstrap 中安装 jQuery 插件时遇到问题

jquery - 如何在Jquery中找到复选框组

jquery - 在 CSS 或 jquery 中选择直系兄弟?

javascript - 选择没有特定内容的 Div

javascript - 在表单输入之前获取具有特定类的 div

javascript - ChartJS 和雷达图动画

javascript - 如何在javascript中将表单转换为Json数组

javascript - 使用javascript将第一个字母大写

javascript - 用于 jQuery 的 Microsoft CDN 还是 Google CDN?