Javascript 中 DOM 遍历的第一个子节点问题
firstChild node issue for DOM traversal in Javascript
从头开始
构建这个基本的待办事项列表,以尝试自学Javascript。我通过 API 发现有一个 firstChild 函数将针对父节点的第一个子节点。
如果我有..
<div class = "parentNode">
<div id = "i0">
TEXT HERE
</div>
<div id = "i1">
</div>
</div>
然后我有一些指定给该功能的按钮:
document.getElementById('myButton').onclick = function () {
var parentNode = document.getElementById('parentNode');
var childNode = parentNode.firstChild.innerHTML;
alert('childNode');
}
为什么这不会在警报框中返回文本?
这里有一些事情发生。首先,您正在寻找一个不存在的元素
var parentNode = document.getElementById('parentNode');
正在查找 ID。这可以通过在元素上使用id="parentNode
来补救,或者您可以使用 MDN 按类名查询querySelector
var parentNode = document.querySelector('.parentNode');
接下来,alert('childNode');
将始终提醒字符串"childNode
"而不是变量childNode
,因此需要alert(childNode)
。
最后,也许也是最有趣的是,.firstChild
将获得子节点集的第一childNode
。这可以是一个#text
节点(确实如此),因为在<div class = "parentNode">
的末尾和<div id = "i0">
的开头之间使用了空格。
与使用 .firstChild
相反,您可以使用只查看元素的children[0]
。下面是显示此行为的代码段。
document.getElementById('myButton').onclick = function () {
var parentNode = document.querySelector('.parentNode');
var childNode = parentNode.children[0].innerHTML;
alert(childNode);
}
<button id="myButton" type="button">Click To Check Node</button>
<div class = "parentNode">
<div id = "i0">
TEXT HERE
</div>
<div id = "i1">
</div>
</div>
相关文章:
- 无法获取vis.js最后一个或第一个选定的网络节点
- 创建第一个节点.js插件
- 如何获取父元素的子元素(仅第一个匹配[0])
- 通过对象的嵌套集合进行递归总是在第一个叶节点处终止
- 在节点中,使用Q,使两个函数并行工作,但只等待第一个函数实现其承诺
- 在角度树中创建第一个节点
- 加载调用仅适用于第一个节点,不适用于叶
- Jquery- 从每个节点中删除第一个元素
- JavaScript substr 与从第一个字符开始时的子字符串
- 节点异步仅在 node-lambda 内部调用第一个函数
- 使用 jQuery 查找第一个祖先是具有特定类的对象的子级
- HTML,CSS.在移动网站中,在第一个节点之前先显示第二个节点
- Json到嵌套列表:第一个节点未捕获
- 如何将一个xml文件与几个节点和子节点链接起来
- 读取xml子节点jquery上的多个xml属性
- 从表内的子体获取第一个数值
- 如何设置两个html节点的innerText,其中一个节点是子节点
- 在第一个下拉值有子元素,然后用户在第二个下拉列表中选择相同的值应该使用 jquery 接受
- 如何在绕过和时获取第一个文本节点
- 如何在包含粗体和斜体标签时获取字符串的第一个文本节点