gpt4 book ai didi

javascript - 循环遍历整个数组 - 所有索引

转载 作者:行者123 更新时间:2023-11-28 05:25:31 25 4
gpt4 key购买 nike

对于一项任务,我需要显示专辑标题和所有歌曲的列表。但我只能获取每张专辑中显示的第一首歌曲。我如何将它们全部显示出来?我假设我需要更改索引值,但我不确定如何编写它来获取所有值。我的代码如下。

    <style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 5px;
}
</style>

<script>
function loadDoc() {
// This function will load the xml file and connect it to the webpage
var xhttp = new XMLHttpRequest();
// This is used to exchange data with the server, allowing for parts of the page to change without reloading the page
xhttp.onreadystatechange = function() {
// This defines a function to be called when the readystate property changes
if (this.readyState == 4 && this.status == 200) {
// This states that if the request is finished (readystate == 4) and the status returned is ok (this.staus == 200)
extractSongs(this);
// This runs the function to display the data from the xml file
}
};
xhttp.open("GET", "CDLibrary.xml", true);
// This gets the xml file
xhttp.send();
// This sends a request to the server
}
function extractSongs(xml) {
// This function will extract and display data from the xml file
var i;
var xmlDoc = xml.responseXML;
// This returns the document containg a response to my request
var table="<tr><th>Artist</th><th>Title</th></tr>";
// This sets up the table
var CdList = xmlDoc.getElementsByTagName("CD");
// This creates an array of the data from the xml file
for (i = 0; i <CdList.length; i++) {
// This will loop through the array by the number of cds in the array
table += "<tr><td>" +
CdList[i].getElementsByTagName("title")[0].childNodes[0].nodeValue +
"</td><td>" +
CdList[i].getElementsByTagName("track")[0].childNodes[0].nodeValue +
"</td></td>" ;
// These display the elements by the tag name and generate them as table data
}
document.getElementById("CdCollection").innerHTML = table;
// This gets the table from the html and makes it equal to the table from the javascript
}
</script>
</head>

<body>
<h1>My CD Collection</h1>

<button type="button" onclick="loadDoc()">Get my collection</button>
<br><br>
<table id="CdCollection"></table>
</body>

最佳答案

我猜你需要第二个 for 循环来 for title/track:-

for (i = 0; i < CdList.length; i++) {

var titleCount = CdList[i].getElementsByTagName("title").length;

for (j = 0; j < titleCount; j++){

// This will loop through the array by the number of cds in the array
table += "<tr><td>" +
CdList[i].getElementsByTagName("title")[j].childNodes[0].nodeValue +
"</td><td>" +
CdList[i].getElementsByTagName("track")[j].childNodes[0].nodeValue +
"</td></td>";
// These display the elements by the tag name and generate them as table data
}
}

关于javascript - 循环遍历整个数组 - 所有索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40206402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com