- Attr对象上有三个属性:
name
,value
,specified
- 一般而言,如果要查找某个HTMLDOM对象上是否有某一属性,通常使用
hasAttribute
方法
- 注意
hasAttribute
方法即便对于值为undefined
的属性(即"")也会返回true
- 对于IE8以及更早版本中的无法使用
hasAttribute
方法,只能通过el.attributes[attrName].specified
来判断某HTMLDOMElement是否有写入某个属性。
测试
-
hasAttribute
与.specified
的使用测试
- 以
<input type="button" id="btn" ai='ai' value="Click">
为例
测试一
<input type="button" id="btn" ai='ai' value="Click">
<script>
const btn = document.getElementById('btn');
console.log(btn.hasAttribute('value')); // true
console.log(btn.hasAttribute('ai')); // true
</script>
测试二
<input type="button" id="btn" ai='' value="">
<script>
const btn = document.getElementById('btn');
console.log(btn.hasAttribute('value')); // false
console.log(btn.hasAttribute('ai')); // false
</script>
测试三
<input type="button" id="btn">
<script>
const btn = document.getElementById('btn');
console.log(btn.hasAttribute('value')); // false
console.log(btn.hasAttribute('ai')); // false
</script>