【发布时间】:2015-12-01 16:43:26
【问题描述】:
我有一个学校任务,我们必须只使用 javascript 对网页进行随机编辑,不允许使用 jquery 或 css 进行编辑。我正在寻找反转导航栏的顺序,例如更改
首页关于联系方式
到
联系方式
因为它们是链接,所以我也必须更改 href,但我在某处犯了一个愚蠢的错误,因为它将所有内容都更改为 home(将文本更改为“home”,将 href 更改为我想用于的 href "home") 所以我认为问题一定是我的第二个 for 循环或循环中的问题,我只是看不到在哪里,所以任何帮助将不胜感激!
var navIds = ["hHome", "hAbout", "hPlants", "hGarden", "hNews", "hArticle", "hContact"];
var navHref = ["index.html", "about.html", "plants.html", "garden.html", "news.html", "article.html", "contact.html"];
var navText = ["home", "about", "plants", "garden", "news", "article", "contact"];
function changeNav()
{
for(var i=0; i<navIds.length; i++)
{
for(var j=navHref.length; j>=0; j= j-1)
{
var x = document.getElementById(navIds[i]);
var y = navHref[j];
x.setAttribute("href", y);
x.textContent = navText[j];
}
}
}
vars 只是我存储要更改的 id 和要使用的 href 以及我希望它们显示的文本的数组。
如果您能提供帮助,请提前感谢!
html 只是来自一个免费模板,并不是我的酒吧向链接添加 id,
<div id="header">
<a href="index.html" id="logo"><img src="images/logo.png" alt="Logo"></a>
<ul>
<li>
<a id="hHome" href="index.html">Home</a>
</li>
<li>
<a id="hAbout" href="about.html">About</a>
</li>
<li>
<a id="hPlants" href="plants.html">Plants</a>
</li>
<li>
<a id="hGarden" href="gardens.html">Gardens</a>
</li>
<li class="current">
<a id="hNews" href="news.html">News</a>
<ul>
<li class="current">
<a id="hArticle" href="article.html">Article</a>
</li>
</ul>
</li>
<li>
<a id="hContact" href="contact.html">Contact</a>
</li>
</ul>
</div>
<div id="partA">
<input type="submit" value="PartA" onclick="linkA()"/>
<input type="submit" value="PartB" onclick="linkB()"/>
</div>
【问题讨论】:
-
你能把相关的 HTML 连同这个一起发布吗?
-
如果列表中有相同数量的元素,则不需要/不应该有嵌套的 for 循环
-
我不明白你的意思,但是当我按下一个按钮时,它应该交换所有内容并以相反的顺序显示我的导航栏
-
只需删除第二个 for 循环并从所有三个数组中获取索引
i处的元素。 -
如果使用
"nav"对象,这段代码会更清晰。看看使用Array.prototype.reverse 以及反转。今天晚些时候有空我会写一个更详细的答案。
标签: javascript html loops for-loop