在IE8之前的浏览器中替代hasAttribute("id")的方法

4

我已经使用过

element.hasAttribute('id') 

在我的代码中,我需要测试元素是否具有属性id。但是hasAttribute API只适用于IE8之后的浏览器。在我的情况下是否有类似的API或技术可以用于检查元素属性(例如"id")是否可用。


测试getAttribute()的返回值。 - Virus721
在这里回答:http://codereview.stackexchange.com/questions/10131/will-this-test-to-check-if-an-element-has-an-attribute-work - Pat Dobson
2个回答

7
在没有使用`hasAttribute`方法的情况下,您需要使用`getAttribute`。这个方法如果没有设置属性应该返回`null`,否则返回一个空字符串。在实践中,一些浏览器会返回一个空字符串,因此在这些浏览器中无法确定是一个为空的属性还是没有属性。
if ((element.getAttribute('id') === null) || (element.getAttribute('id') === '')) {

1
这个答案更准确。 - Virus721

2

只需检查 element.id - 如果未设置,则为空字符串。

对于那些由JS对象属性镜像的属性,不需要使用element.hasAttribute


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接