属性节点是否存在于HTML中?

时间:2015-03-08 07:10:45

标签: javascript html

任何人都可以给我一个HTML格式的属性节点示例,其nodeType值为2吗?提前致谢。

3 个答案:

答案 0 :(得分:6)

所有属性节点的类型必须为2,因为document.ATTRIBUTE_NODE的定义类型为。{/ p>

请参阅MDN documentation on Attr type

  

<强> nodeType
  此属性现在始终返回2(ATTRIBUTE_NODE)。

一般例子:

&#13;
&#13;
var attr = document.getElementById('tistheid').attributes[1]
document.getElementById('num').innerHTML = document.ATTRIBUTE_NODE

var output = document.getElementById('output')
output.innerHTML =        'constructor:\t' + attr.constructor.name
                 + '\n' + 'type:\t'        + attr.nodeType
                 + '\n' + 'value:\t'       + attr.value
&#13;
<p id="tistheid" class="tistheclass"></p>
<p>
  This is the value of ATTRIBUTE_NODE: <span id="num"></span>
</p>
<pre id="output">
</pre>
&#13;
&#13;
&#13;

尽管浏览器供应商和标准化组织试图让Attr过去不再继承Node,但他们最终决定将Node保留在Attr继承中链,由于旧网站的兼容性问题。但是,作为开发人员,现在应避免在Node上使用从Attr继承的方法。

编辑(2017-08-09):WHATWG再次从Attr继承Node。相应更新。

答案 1 :(得分:2)

您可以使用nodeType

获取Element.getAttributeNode()值为2的节点

Per:https://developer.mozilla.org/en-US/docs/Web/API/Attr

  

此类型将DOM元素的属性表示为对象。多数情况   在DOM方法中,您可能会直接将该属性检索为   string(例如,Element.getAttribute(),但某些函数(例如,   Element.getAttributeNode())或迭代方法给出Attr类型。

此类型似乎也已弃用:https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType

答案 2 :(得分:0)

见下文

<!DOCTYPE html>
<html>
<body>

<p id="myP" class="buttonClass">Click the button to get the node type of this element.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var x = document.getElementById("myP").getAttributeNode("class").nodeType;
    document.getElementById("demo").innerHTML = x;
}
</script>

</body>
</html>