gpt4 book ai didi

javascript - 'getElementsByTagName' 未定义

转载 作者:行者123 更新时间:2023-11-30 08:43:27 28 4
gpt4 key购买 nike

我正在研究基于 xml 内容显示图像的内容流。我正在将它构建为一个站点,因此它是 html 和 javascript,并且出于某些未知原因 - 相信我,我已经尽可能精细地梳理它 - 我的 javascript 只是没有加载我的 xml (这就是我相当确定的问题所在,但我可能是错的)并且它向我抛出“getElementsByTagName”为空的错误。现在我还没有构建完整的功能,我只是想通过将它作为文本读出来测试 xml,所以请耐心等待。

loadXMLDoc.js:

function loadXMLDoc(filename)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else // code for IE5 and IE6
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}

我在 html 中的内部 java:

<script>
xmlDoc = loadXMLDoc("test.xml");
var x = xmlDoc.getElementsByTagName("song");
for (i=0; i<x.length; i++);
{
var a = (x[i].getElementsByTagName("source")[0].childnodes[0].nodeValue);
var b = (x[i].getElementsByTagName("artist")[0].childnodes[0].nodeValue);
var c = (x[i].getelementsByTagName("title")[0].childnodes[0].nodeValue);
var par = '<img class= "item" href ="#" ondblclick = "confirm()" src ="' +'" "title="' +b+ '"-"'+ c+ ' " />';
document.getElementById("demo").innerHTML += par;
}
</script>

和完整的错误:

未捕获的类型错误:无法读取未定义的 album.html:24 的属性“getElementsByTagName”(匿名函数)

为了好玩,我的 xml 示例:

<song>
<source>imgs/Beck.jpg</source>
<title>Modern Guilt</title>
<artist>Beck</artist>
</song>

希望我涵盖了所有需要的内容,我知道这可能有些愚蠢,但我无法确定。

最佳答案

首先你有一个“;”在你的 for 循环之后不应该在这里:

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

应该是

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

因为这里发生的是你 for 循环遍历 x 的元素但没有执行你的主体。

其次,你的

var c = (x[i].getelementsByTagName("title")[0].childnodes[0].nodeValue);

包含错别字,应该是 getElementsByTagName,e 大写

这是我使用的代码,它工作正常:

<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>

<div id="demo"></div>

<script>
var loadXMLDoc = function (filename) {
var xhttp;
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();

if (xhttp.readyState === 4 && xhttp.status === 200) {
return xhttp.responseXML;
}
return {error : 'file not found'};

},
xmlDoc = loadXMLDoc("test.xml"),
testObj = xmlDoc,
x = testObj.getElementsByTagName("song");
for (i=0; i<x.length; i++) {
var objectElem = x[i];
var a = (objectElem.getElementsByTagName("source")[0].textContent),
b = (objectElem.getElementsByTagName("artist")[0].textContent),
c = (objectElem.getElementsByTagName("title")[0].textContent),
par = '<img class="item" href="#" ondblclick="confirm()" src="'+ a +'" title="' +b+ '-'+ c+ '" />';
console.log(par);
document.getElementById("demo").innerHTML += par;
}
</script>

</body>

</html>

这是我的 test.xml(放在与上述代码相同的文件夹中):

<songlist>
<song>
<source>imgs/Beck.jpg</source>
<title>Modern Guilt</title>
<artist>Beck</artist>
</song>
<song>
<source>imgs/Beck2.jpg</source>
<title>Modern Guilt2</title>
<artist>Beck2</artist>
</song>
</songlist>

关于javascript - 'getElementsByTagName' 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24070741/

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