我有一系列页面,其标题存储在var。
中我想创建一个脚本,对页面对应的导航链接做一些事情。在我的网站上,标题和导航链接的名称是相同的,所以我只使用if和each语句如下:
$.each($("#menu ul li ul li ul"), function() {
if($(this).find("a").html() == pagetitle){
//DO SOMETHING
}
});
问题是,这似乎只能循环一次。它只抓取第一个li和一个标签,因此只能在一个页面上工作。
有人可以建议一种纠正方法吗?
编辑:html:
<div id="menu">
<ul>
<li><a href="somewhere.html">enu Item</a>
<ul>
<li><a href="somewhere.html">Menu Item 2</a>
<ul>
<li><a href="somewhere.html">Menu Item 3</a></li>
<li><a href="somewhere.html">Menu Item 4</a></li>
<li><a href="somewhere.html">Menu Item 5</a></li>
<li><a href="somewhere.html">Menu Item 6</a></li>
</ul>
</li>
<li><a href="somewhere.html">Menu Item 7</a></li>
<li><a href="somewhere.html">Menu Item 8</a></li>
</ul>
</li>
</ul>
</div>
答案 0 :(得分:0)
为什么不呢:
$.each($("#menu a"), function() {
if($(this).html() == pagetitle){
//DO SOMETHING
}
});
答案 1 :(得分:0)
由于您的代码选择了第三个<ul>
,它只会找到<ul>
一次..您必须选择直到<li>
....
我想你错过了<li>
那里
$.each($("#menu ul li ul li ul li"), function() {
if($(this).find("a").html() == pagetitle){
//DO SOMETHING
}
});
注意:这只适用于第三个<ul>
我认为这就是你要求的......
如果全部<li>
那么您可以使用
$.each('#menu li')... //as a selector
中的示例
答案 2 :(得分:0)
你可以用更短的方式循环播放:
$.each($("#menu li"), function() {
if($(this).find("a").text() == pagetitle){
//DO SOMETHING
}
});
使用.text()
代替.html()
答案 3 :(得分:0)
尝试使用此脚本
$("#menu").find("li").each(function(){
if ($(this).find('a').html() == pagetitle) {
// do
}
});