function seeListItems(){ var olElement = document.getElementById(“toDoList”); var st =“”;
for(var i = 0; i< olElement.childNodes.length; i ++){ 如果(olElement.childNodes [1] …
脚本中有拼写错误 olElement 没有在任何地方定义。
olElement
function seeListItems() { var oiElement = document.getElementById("toDoList"); var st = ""; for (var i = 0; i < oiElement.childNodes.length; i++) { if (oiElement.childNodes[i].nodeType == 3) { st += oiElement.childNodes[i].nodeValue; } } alert(st); 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); }
<h1>Things To Do</h1> <ol id="toDoList"> <li>Mow the lawn</li> <li>Clean the windows</li> <li>Answer your email</li> </ol> <p id="toDoNotes">Make sure all tasks are done by 10pm.</p> <button type="button" onclick="seeListItems();">Run function</button>
为了清楚起见,我只做了以下更改:
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);
}
你也把oiElement误认为是元素。
您的代码中有拼写错误。 var oiElement = document.getElementById("toDoList"); 应该 var olElement = document.getElementById("toDoList"); 。
var oiElement = document.getElementById("toDoList");
var olElement = document.getElementById("toDoList");
另外,你考虑过使用jQuery吗?我认为这会大大简化你想要做的事情。有些人因为它的大小而抨击jQuery,但我认为它并不那么糟糕。考虑一下您将节省多少行代码,这并不算太糟糕!
考虑这个例子:
function seeListItems() { $("#toDoList").children('li').each(function(){ console.log($(this).text()); }); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <!DOCTYPE html> <html> <head> <title>To-Do List</title> </head> <body> <h1>Things To Do</h1> <ol id="toDoList"> <li>Mow the lawn</li> <li>Clean the windows</li> <li>Answer your email</li> </ol> <p id="toDoNotes">Make sure all tasks are done by 10pm.</p> <button type="button" onclick="seeListItems();">Run function</button> </body> </html>
你可以用它:
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); }
编辑:简化=&gt;
<script> function seeListItems() { document.querySelectorAll("#toDoList li").forEach(function(li){ alert(li.innerText); }) alert(document.getElementById("toDoNotes").innerText); } </script>