访问子节点';javascript中的儿童

访问子节点';javascript中的儿童,javascript,html,Javascript,Html,如何在javascript中访问子节点的子节点? 我需要瞄准每个li内部的img,并获得其宽度和高度。 我希望在不使用jquery的情况下完成此操作。只是纯javascript <ul id="imagesUL"> <li> <h3>title</h3> <img src="someURL" /> </li> </ul> var lis = document.getElementById("ima

如何在javascript中访问子节点的子节点? 我需要瞄准每个li内部的img,并获得其宽度和高度。 我希望在不使用jquery的情况下完成此操作。只是纯javascript

<ul id="imagesUL">
<li>
   <h3>title</h3>
   <img src="someURL" />
</li>
</ul>


var lis = document.getElementById("imagesUL").childNodes;
  • 标题
var lis=document.getElementById(“imagesUL”).childNodes;
您可以为
$()
函数提供第二个参数,以指定搜索图像的范围:

var lis = $('#imagesUL').children();
var images = $('img', lis)
images.each(function() {
    var width = $(this).attr('width');
    // ...
});

您可以向
$()
函数提供第二个参数,以指定搜索图像的范围:

var lis = $('#imagesUL').children();
var images = $('img', lis)
images.each(function() {
    var width = $(this).attr('width');
    // ...
});
这对我很有用:

var children = document.getElementById('imagesUL').children;
var grandChildren = [];
for (var i = 0; i < children.length; i++)
{
    var child = children[i];
    for (var c = 0; c < child.children.length; c++)
        grandChildren.push(child.children[c]);
}
var children=document.getElementById('imagesUL').children;
var孙子=[];
对于(变量i=0;i
孙子女
包含所有子女的子女

像jQuery和下划线这样的库使它更易于以更具声明性的方式编写。

这对我很有用:

var children = document.getElementById('imagesUL').children;
var grandChildren = [];
for (var i = 0; i < children.length; i++)
{
    var child = children[i];
    for (var c = 0; c < child.children.length; c++)
        grandChildren.push(child.children[c]);
}
var children=document.getElementById('imagesUL').children;
var孙子=[];
对于(变量i=0;i
孙子女
包含所有子女的子女


像jQuery和下划线这样的库使它更易于以更具声明性的方式编写。

实现这一点的理想方法是使用
querySelectorAll
函数,前提是您可以保证它可用(例如,如果您正在为移动浏览器设计网站)

但是,如果不能保证这一点,则必须自己进行循环:

var = lis = document.getElementById("imagesUL").childNodes,
      imgs = [],
      i, j;

for (i = 0; i < lis.length; i++) {
    for (j = 0; j < lis[i].childNodes.length; j++) {
        if (lis[i].childNodes[j].nodeName.toLowerCase() === 'img') {
            imgs.push(lis[i].childNodes[j]);
        }
    }
}
var=lis=document.getElementById(“imagesUL”).childNodes,
imgs=[],
i、 j;
对于(i=0;i

上面的代码片段是使用jQuery这样的库来保持理智的一个很好的论据。

实现这一点的理想方法是使用
querySelectorAll
函数,前提是您可以保证它可用(例如,如果您正在为移动浏览器设计网站)

但是,如果不能保证这一点,则必须自己进行循环:

var = lis = document.getElementById("imagesUL").childNodes,
      imgs = [],
      i, j;

for (i = 0; i < lis.length; i++) {
    for (j = 0; j < lis[i].childNodes.length; j++) {
        if (lis[i].childNodes[j].nodeName.toLowerCase() === 'img') {
            imgs.push(lis[i].childNodes[j]);
        }
    }
}
var=lis=document.getElementById(“imagesUL”).childNodes,
imgs=[],
i、 j;
对于(i=0;i

上面的代码片段是使用jQuery这样的库来保持理智的一个很好的论据。

如何使用javascript来做类似的事情?如何使用javascript来做类似的事情?