js 怎么获取xml根节点下的所有子节点

js 怎么获取xml根节点下的所有子节点,第1张

我也遇到了楼主的问题,希望动态得到节点名称,根据5楼的提示,我看到了tagName 这个重要的属性,然后自己研究一下成功了
<script type="text/javascript">
var xml>var a_arr = documentgetElementById("demo")getElementsByTagName("a");这就是找到所有demo下的a,返回的是数组

<html>
<head>
<meta >

这是因为getElementById再结合children属性获取的是DOM元素,而querySelectorAll获取的则是NodeList对象元素。前者会随页面DOM结构的变化而变化,比如删除了box中的一个div,这个div就会从children中被“真实地”删掉,childrenlength的计数也会减1。而后者如果删除其中的某个子元素,被删的元素并不会消失,而是变成一个空对象,children1length的计数也不会改变,这样的话 for(var i=0;i<children1length;) 这个循环由于i的值不变(总是等于0),而children1length也不会减少(总是4),这样就变成死循环了(同时也意味着把一个已删除的元素不断重复删除)。

改成这样就没问题了:

for(var i=0;i<children1length;i++){

  boxremoveChild(children1[i]);

}

你好,
在DOM中实际上有一个叫做textNode的元素,相应的还有documentcreateTextNode的JS方法,而在IE和Chrome浏览器中会将源代码中的换行符渲染成一个textNode,只是视觉上不可见。
然而,通过childNodes来获取子元素的时候,结果会包含这些textNode,所以会得到题主所见的情况。
而解决方法很简单,主要有两种:
第一,使用children代替childNodes
第二,遍历childNodes,根据nodeType过滤掉textNode
希望能解决你的问题。

javascript中获得元素个数用的函数是length属性,也就是在获取的dom元素的时候返回dom的个数。比如documentgetElementsByTagName('div')length;这样就获得了div的个数,那么,要获得子元素的个数,同样的用哪个length就可以完成,只不过,需要指定父元素,比如:var father=documentgetElementById('divid');从father中获得子元素个数:fathergetElementsByTagName('a')length;这样就能获取到father中a元素的个数了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13378869.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存