使用 foreach 访问 Javascript 中的节点列表子元素
using foreach to access nodelist children element in Javascript
我正在尝试使用 foreach 遍历 NodeList。但是当我尝试使用以下代码访问时。
foreach = Array.prototype.forEach;
cls= document.getElementsByClassName('classname')
foreach.call(cls,function(some)
{
var ok = some.children;
foreac.call(ok,function(ss)
{
ss
});
});
我正在 chrome 开发者工具中尝试这段代码。控制台正在返回 'undefined'。我可以通过明确指定列表位置来访问。
你得到 undefined
因为基本上你没有对结果做任何事情。您可以 return 它或例如将其记录到控制台。
var foreach = Array.prototype.forEach,
cls = document.getElementsByClassName('classname');
foreach.call(cls, function(some) {
var ok = some.children;
foreach.call(ok, function(ss) {
console.log(ss);
});
});
<ul class='classname'>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
无论如何,我不确定您这样做是否只是为了学习目的,但您正在使它复杂化。
用 querySelectorAll
获取指定元素并用 Array#forEach
遍历它不是更容易吗?
var elems = document.querySelectorAll('ul li');
elems.forEach(v => console.log(v));
<ul class='classname'>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
我正在尝试使用 foreach 遍历 NodeList。但是当我尝试使用以下代码访问时。
foreach = Array.prototype.forEach;
cls= document.getElementsByClassName('classname')
foreach.call(cls,function(some)
{
var ok = some.children;
foreac.call(ok,function(ss)
{
ss
});
});
我正在 chrome 开发者工具中尝试这段代码。控制台正在返回 'undefined'。我可以通过明确指定列表位置来访问。
你得到 undefined
因为基本上你没有对结果做任何事情。您可以 return 它或例如将其记录到控制台。
var foreach = Array.prototype.forEach,
cls = document.getElementsByClassName('classname');
foreach.call(cls, function(some) {
var ok = some.children;
foreach.call(ok, function(ss) {
console.log(ss);
});
});
<ul class='classname'>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
无论如何,我不确定您这样做是否只是为了学习目的,但您正在使它复杂化。
用 querySelectorAll
获取指定元素并用 Array#forEach
遍历它不是更容易吗?
var elems = document.querySelectorAll('ul li');
elems.forEach(v => console.log(v));
<ul class='classname'>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>