如果我有一个属性disabled
,并且我想在运行函数之前检查元素是否具有此属性,我可以使用
if element.hasAttribute('disabled')
如果我有几个与同一功能相关的属性,例如
attributes = [disabled, something, another]
如何使用if element.hasAttribute('attribute')
检查数组中的任何属性?
更新:
实际上我的数组中只有两个项目,所以我做了
if el.hasAttribute('noink') || el.hasAttribute('disabled')
下面的回答也是可行的,如果我有一个更大的阵列,我会使用它们。
答案 0 :(得分:2)
功能如何
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);
答案 1 :(得分:0)
申请循环:
var isAttr=false;
for(key in attributes){
if(element.hasAttribute('attribute')){
console.log('the attribute'+attributes[key]+ 'is attach to element');
isAttr=true;
}
}
console.log('element has any of array element as attribute:'+isAttr)
答案 2 :(得分:0)
更紧凑......
function hasAttributes(e, l){
var t = [];
for(var i in l){
t.push(e.attributes[l[i]] !== undefined);
}
return t;
}
使用:
var myList = ["disabled", "something", "another"];
var myElement = document.getElementById("test");
console.log(hasAttributes(myElement, myList));
或者对于所有情况或任何情况都是假的:
function getAttributes(e, l){
var t = [];
for(var i in l){
if(e.attributes[l[i]] === undefined){
return false;
}
}
return true;
}
答案 3 :(得分:0)
<强>更新强>:
实际上我的数组中只有两个项目,所以我做了
if el.hasAttribute('noink') || el.hasAttribute('disabled')
下面的回答也是可行的,如果我有一个更大的阵列,我会使用它们。