gpt4 book ai didi

javascript - document.write 内容替换现有内容而不是显示在其下方

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

我有一个 XML 文件,每个元素都有一个名为“类别”的子元素。在我的 HTML 页面上,我创建了一个下拉表单,其中列出了可能的类别(以及“全部”)。当用户从下拉列表中选择一个类别时,它会分配一个与该类别相对应的 javascript 变量,然后我使用 javascript/ajax 迭代 XML 文件并显示该类别的元素列表。这一切都工作正常......但是当它显示列表时,而不是在下拉列表下显示它,下拉列表完全消失,您看到的只是列表。我想在下拉列表下方显示列表,以便用户可以选择不同的类别(如果他/她选择)。请帮我弄清楚为什么它会删除下拉菜单以及如何修复它。提前致谢! (另外,如果这是一个非常愚蠢的问题,我深表歉意……我对 javascript 很陌生。)

<html>
<head>
<script>


//This is the basic XML stuff.
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}

else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.open("GET","websites.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

var x=xmlDoc.getElementsByTagName("site");

//This is the part that handles printing the items under the various categories.
function printCat(cat)
{
if(cat=="all")
{
for (i=0;i<x.length;i++)
{
document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue + "<br/>");
}
}

else
{
for (i=0;i<x.length;i++)
{
if (x[i].getElementsByTagName("category")[0].childNodes[0].nodeValue==cat)
{
document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue + "<br/>");
}
}
}
}
</script>
</head>
<body>

<form action='../'>
<select onchange='printCat(this.options[this.selectedIndex].value)'>
<option value='all'>All</option>
<option value='search'>Search</option>
<option value='social_media'>Social Media</option>
</select>
</form>

</body>
</html>

最佳答案

使用您必须创建的站点名称字符串(或其他名称)的循环,而不是 document.write。在每个字符后面添加换行符,即: + "\n"+

在函数末尾添加以下行:this.innerHTML = myString;

“this”指的是函数调用元素,“innerHTML”指的是位于调用元素打开和关闭标记之间的空间。它将覆盖那里的其他任何内容(就像 document.write 将覆盖 doc 标签之间的所有内容一样)。从那里进行微调以获得您想要的结果。

例如,创建第二个下拉元素并从该元素调用该函数。

关于javascript - document.write 内容替换现有内容而不是显示在其下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13808938/

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