使用jquery向后遍历
我有下面这样的代码 如果单击“finallink”类,我希望选择或显示与“level_u2;”类匹配的所有先前元素,直到“parent”类。有很多“级别”类,比如“级别1,级别2…级别n” 使用jquery向后遍历,jquery,Jquery,我有下面这样的代码 如果单击“finallink”类,我希望选择或显示与“level_u2;”类匹配的所有先前元素,直到“parent”类。有很多“级别”类,比如“级别1,级别2…级别n” 如何获取所有“level_uuu”值。示例代码如果标记类似于问题,其中finallink是最后一个元素,或者至少在同一父级中没有任何具有\u level类的元素,则可以首先获取与.parent类匹配的最近父级,然后查找()与\u级别匹配的所有元素类别: $(".finallink").closest(".
如何获取所有“level_uuu”值。示例代码如果标记类似于问题,其中
finallink
是最后一个元素,或者至少在同一父级中没有任何具有\u level
类的元素,则可以首先获取与.parent
类匹配的最近父级,然后查找()
与\u级别匹配的所有元素
类别:
$(".finallink").closest(".parent")
.find("[class^='level_']")
.css("background-color","yellow");
否则,您可以执行以下操作:
$(".finallink").prevAll()
.filter("[class^='level_']")
.css("background-color","yellow");
你说的是“以前的”级别,我指的是链接之前的级别。你说的是“直到父级<代码>父级代码>类”,因为这是容器,这意味着我们可以使用所有以前的同级,然后过滤到只有一个<代码>级别x代码>类的级别:
$(".finallink").click(function() {
var list = $(this).prevAll().filter(function() {
return this.className.match(/\blevel_/);
});
// Use `list`
});
|
即使你在
level_1
前面有其他类,例如
,这也能起作用,而这将在引用的HTML中起作用,只要OP通过向这些级别添加另一个类来稍微改变事情:level 1 text
它就会中断。@T.J.Crowder-我只是在回答中添加了这个,但谢谢你谢谢你的注意!谢谢…这对我来说非常有效。但是如果我使用ul列表,那么它就不会像预期的那样工作。请检查这里的代码@Ra.:看看你的结构,然后从中选择合适的工具来做你需要的事。你的小提琴不工作,因为结构与你问题中的结构不同。这就像导航一样你的问题的结构就像办公大楼中的一层。你在a办公室,你问如何在同一层找到B办公室和C办公室,这就是我的答案。但在你的小提琴中,B办公室在一层楼上,C办公室在两层楼上。这自然会改变我们到达那里的方式。我只是加上父母()函数之前的prevAll()。现在它对我有效。请检查这里是否有任何方法可以将输出存储到不同的变量中,如$var1=somevalue1,$var2=somevalue2@Ra.:当然可以。this.className.match(/\blevel\uuu/)所对应的每个元素
条件在过滤器中为true
调用是其中一个元素。您可以在执行过程中单独获取有关它们的信息。
$(".finallink").prevAll()
.filter("[class^='level_']")
.css("background-color","yellow");
$(".finallink").click(function() {
var list = $(this).prevAll().filter(function() {
return this.className.match(/\blevel_/);
});
// Use `list`
});