javascript - 检查元素是否具有给定数组中的任何属性

标签 javascript html attributes

如果我有一个属性disabled,并且我想在运行函数之前检查元素是否具有此属性,我可以使用

if element.hasAttribute('disabled')

如果我有多个与同一功能相关的属性,例如

attributes = [disabled, something, another]

如何使用 if element.hasAttribute('attribute') 来检查数组中的任何属性?

更新:

实际上我的数组中只有两项,所以我这样做了

if el.hasAttribute('noink') || el.hasAttribute('disabled')

下面的响应也是可行的,如果我有更大的数组,我会使用它们。

最佳答案

函数怎么样

function hasAttributes(element, arr) {
    return [].slice.call(element.attributes).some(function(attr) {
        return arr.indexOf(attr.name) !== -1;
    });
}

用作

var attributes = ['disabled', 'something', 'another'];
var element    = document.getElementById('some_id');

var has_attr   = hasAttributes(element, attributes);

FIDDLE

关于javascript - 检查元素是否具有给定数组中的任何属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29829160/

相关文章:

javascript - 相当于在vanillajs中设置html和body height为window height

python - 尝试根据输入创建一个简单的按属性选择的脚本

javascript - 将参数传递给 node.js 中的 async.parallel

javascript - 中心 div block 但不在最后一行

iphone - iPhone和Android横屏时如何限制网页缩放拉伸(stretch)?

jquery - Jssor slider : How to target specific slide with text/image link?

javascript - jQuery 问题无法检索或设置属性, 'undefined'

python - 如何从 'pyspark.sql.types.Row' 获取所有列/属性名称?

javascript - querySelectorAll 语法无效

javascript - 在 for 循环中创建 GeoJSON