ADS3.7 DOM2核心和DOM2 HTML——Node对象之五:检测是否具有子节点和属性
如果想要检测某个节点是否具有子节点或属性,那么可以使用hasChildNodes()和hasAttributes()方法,如下例所示:[code lang="js"]
ADS.addEvent(window, 'load', function() {
ADS.log.header('Attributes And ChildNodes');
var h2 = document.getElementsByTagName('H2')[0];
ADS.log.write(h2.nodeName);
ADS.log.write(h2.nodeName + ' hasChildNodes: ' + h2.hasChildNodes());
ADS.log.write(h2.nodeName + ' childNodes: ' + h2.childNodes);
ADS.log.write(h2.nodeName + ' number of childNodes: '+ h2.childNodes.length);
ADS.log.write(h2.nodeName + ' attributes: ' + h2.attributes);
ADS.log.write(h2.nodeName + ' number of attributes: '+ h2.attributes.length);
// 下面这行在IE中会出错
ADS.log.write(h2.nodeName + ' hasAttributes: '+ h2.hasAttributes());
});
[/code]
运行以上代码后,日志窗口将会显示以下结果:
□ H2
□ H2 hasChildNodes: true
□ H2 childNodes: [object NodeList]
□ H2 number of childNodes: 1
□ H2 attributes: [object NamedNodeMap]
□ H2 number of attributes: 0
□ H2 hasAttributes: false
如果只想知道某个节点是否包含什么时,使用hasChildNodes()和hasAttributes()方法是非常便利的。但是,如果想知道节点中包含多少个子节点或属性时,那就需要使用childNodes和attributes属性。
查看完整版本: ADS3.7 DOM2核心和DOM2 HTML——Node对象之五:检测是否具有子节点和属性
Tags: