我有一个可能无限嵌套的ol > li
在树中给出li,我需要将一些函数应用于给定li
下面的所有其他li
,但当前ol
除外。举个例子:
例如:
<ol>
<li>
Do not apply to me
<ol>
<li>Do not apply to me</li>
<li>Do not apply to me</li>
</ol>
</li>
<li>
Do not apply to me
<ol>
<li id='given'>I am the "given" li</li> <------------- you are here
<li>Do not apply to me</li>
<li>
Do not apply to me
<ol>
<li>Do not apply to me</li>
<li>Do not apply to me</li>
</ol>
</li>
</ol>
</li>
<li>
Apply to me
</li>
<li>
Apply to me
<ol>
<li>Apply to me</li>
<li>
Apply to me
<ol>
<li>Apply to me</li>
<li>Apply to me</li>
</ol>
</li>
</ol>
</li>
</ol>
实现这一目标最优雅的方法是什么?
由于
答案 0 :(得分:1)
你可以写:
$("#given").parents("li:first").nextAll("li").find("li").andSelf();
答案 1 :(得分:1)
@ Gordon的答案将适用于给定的示例,但如果在包含#given的OL之后立即有另一个OL,则它将无效。
$("#given").parents("ol").nextAll("ol").find("li").each(function() {
// function
});
$("#given").parents("li").nextAll("li").find("li").andSelf().each(function() {
//function
});
这样可行,但可能有更优雅的方法来实现它。