Javascript 需要使用子节点显示列表中的文本
Javascript 需要使用子节点显示列表中的文本,javascript,html,Javascript,Html,函数请参见ListItems(){ var olElement=document.getElementById(“toDoList”); var st=“”; 对于(变量i=0;i
函数请参见ListItems(){
var olElement=document.getElementById(“toDoList”);
var st=“”;
对于(变量i=0;i
要做的事情
修剪草坪
擦窗户
回复你的电子邮件
确保所有任务在晚上10点之前完成
运行函数
您可以使用该函数:
function seeListItems() {
var olElements = document.querySelectorAll("#toDoList li");
olElements.forEach(function(li){
alert(li.innerText);
})
var pElement = document.getElementById("toDoNotes");
var str = "";
for (var j=0; j < pElement.childNodes.length; j++) {
if(pElement.childNodes[j].nodeType == 1) {
str += pElement.childNodes[j].nodeValue;
}
}
alert(str);
}
函数请参见ListItems(){
var oleelements=document.queryselectoral(“#toDoList li”);
olements.forEach(函数(li){
警报(li.innerText);
})
var pElement=document.getElementById(“toDoNotes”);
var str=“”;
对于(var j=0;j
编辑:简化=>
<script>
function seeListItems() {
document.querySelectorAll("#toDoList li").forEach(function(li){
alert(li.innerText);
})
alert(document.getElementById("toDoNotes").innerText);
}
</script>
函数seeListItems(){
document.queryselectoral(“#toDoList li”).forEach(函数(li){
警报(li.innerText);
})
警报(document.getElementById(“toDoNotes”).innerText);
}
脚本中有一个打字错误olement
未在任何地方定义
函数请参见ListItems(){
var oiElement=document.getElementById(“toDoList”);
var st=“”;
对于(var i=0;i
要做的事情
修剪草坪
擦窗户
回复你的电子邮件
确保所有任务在晚上10点之前完成
运行函数
您的代码中有一个输入错误var oiElement=document.getElementById(“toDoList”)代码>应该是var olElement=document.getElementById(“toDoList”)代码>
另外,您是否考虑过使用jQuery。我想这会大大简化你的工作。有些人因为jQuery的大小而抨击它,但我认为它没有那么糟糕。当你考虑你要保存多少行代码时,还不算太坏!
考虑这个例子:
函数请参见ListItems()
{
$(“#toDoList”)。子项('li')。每个(函数(){
console.log($(this.text());
});
}
待办事项清单
要做的事情
修剪草坪
擦窗户
回复你的电子邮件
确保所有任务在晚上10点之前完成
运行函数
实际上,任何元素的childNode[0]
都是textNode
,因此可以从childNode[1]
开始。类似地,所有偶数childNodes
都将是textNodes
,因此您必须按如下方式打印#toDoList
的奇数childNodes
的值
函数请参见ListItems(){
var oiElement=document.getElementById(“toDoList”);
var st=“”;
对于(变量i=1;i
待办事项清单
要做的事情
修剪草坪
擦窗户
回复你的电子邮件
表演作品
为了清晰起见,我做了以下更改:
function seeListItems() {
var oiElement = document.getElementById("toDoList");
var st = "";
for (var i=0; i < oiElement.childNodes.length; i++) {
if(oiElement.childNodes[i].nodeType === Node.ELEMENT_NODE) {
st += oiElement.childNodes[i].firstChild.nodeValue;
}
}
alert(st);
var pElement = document.getElementById("toDoNotes");
var str = "";
for (var j=0; j < pElement.childNodes.length; j++) {
if(pElement.childNodes[j].nodeType === Node.TEXT_NODE) {
str += pElement.childNodes[j].nodeValue;
}
}
alert(str);
函数请参见ListItems(){
var oiElement=document.getElementById(“toDoList”);
var st=“”;
对于(var i=0;i
}
您还错误地将oiElement表示为olElement。这里有一个输入错误:oiElement
和olElement
。您键入了“i”而不是“l”。我更正了它,问题仍然存在)第一个警报显示为NullNullNullNull,nodeType=1谢谢,但我需要使用与第二个id“toDoNotes”使用的几乎相同的方法,您要特别使用它的哪一部分?我需要获得一个警报,该警报将显示列表中的所有3个句子。我必须使用node(我们在dom一章中),但我不知道哪里有错误。我不能使用查询,我的任务是获取节点的警报。值childNodes[0]的功能是什么,它与childNodes[I]有什么区别?ChildNode[0]
实际上是的textNode
类似于textNode[0]toDoList的
是一个文本节点