gpt4 book ai didi

javascript - 在javascript中动态编写对象时如何注册DOM id?

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

我对这个脚本有疑问。起初我有 <div>它是硬编码的,并且工作正常。但后来我需要动态更改导航栏,因为我更改了(数量)链接。

问题是在注入(inject) element 时,id 没有注册.innerHTML =(html 字符串)。

我该如何解决这个问题?

代码如下:

JavaScript:

 function constructNav() {
var submenu_layer_innerHTML = "";
var top_nav_innerHTML = "<UL class=\"nav_category\">";
for (i=0; i<links.length; i++) {
submenu_layer_innerHTML = "<div class=\"submenu\" id=\"submenu" + i + "\" onMouseOut=\"timeHideNav('" + i + "','1000')\"> </div>";
top_nav_innerHTML += "<LI id=\"link" + i + "\"><a href=# onMouseOver=\"expandNav('" + i + "');\">" + links[i] + "</a></LI>";
}
top_nav_innerHTML += "</UL>";
document.getElementById("top_nav").innerHTML = top_nav_innerHTML;
document.getElementById("submenu_layer").innerHTML = submenu_layer_innerHTML;
}

html:

<script type="text/javascript" src="scripts.js"> </script>
<script type="text/javascript">
var links =["link 1",
"link 2",
"link 3",
"link 4",
"link 5",
"link 6"];
</script>

<body onLoad="constructNav();">

<div id="submenu_layer"> </div>
<div id="top_nav"> </div>

我在 firefox 中遇到这个错误:

  line 35: document.getElementById("submenu"+pageNo) is NULL

最佳答案

for 循环的每次迭代期间,您都在覆盖 submenu_layer_innerHTML。确保使用 +=

关于javascript - 在javascript中动态编写对象时如何注册DOM id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10001940/

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