【发布时间】:2010-04-25 15:26:54
【问题描述】:
我正在使用 jQuery 根据它们的类显示/隐藏不同的 LI 元素。看看这个例子。
<li id="1" class="fp de1"></li>
<li id="2" class="fp de1"><button onclick="hide(2,2);"></li>
<li id="3" class="fp de2"><button onclick="hide(3,3);"></li>
<li id="4" class="fp de3"><button onclick="hide(4,4);"></li>
<li id="5" class="fp de4"></li>
<li id="6" class="fp de3"></li>
<li id="7" class="fp de3"></li>
<li id="8" class="fp de1"><button onclick="hide(8,2);"></li>
<li id="9" class="fp de2"><button onclick="hide(9,3);"></li>
<li id="10" class="fp de3"><button onclick="hide(10,4);"></li>
<li id="11" class="fp de4"></li>
您会发现其中一些具有隐藏功能的按钮。我想要的是,当您按下隐藏按钮时,应隐藏 .de# 类中具有较高编号的以下元素,直到它到达具有相同 .de#-class 的 LI。
因此,如果您按下 hide(),我希望隐藏 ID 为 3、4、5、6、7 的 LI。 如果我按下下一个,我想要 4、5、6、7,而我想要隐藏 id 5 的 thir。
这是我为它制作的 Javascript:
function hide(id,de){
var de2 = de-1;
$('#'+id).nextUntil('li.de'+de2).hide();
}
问题是这个功能不能完全按照我的意愿工作。它可以在第一个 hide() 函数和第三个函数中正常工作,但不能在第二个 hide() 函数中正常工作。在这里它将隐藏 ID:4-8。所以我想做点什么。所以我希望 nextuntill() 隐藏元素,直到它到达具有相同 .de# 或较低 .de#的 LI 元素。
我希望我没有在我对问题的描述中将其复杂化。如果你有比使用 nextUntill 我全神贯注更好的主意。
【问题讨论】:
-
第一件事:你的“id”值不能只是数字——它们必须以字母或“_”开头。
标签: javascript jquery list