如何选择出现在某个元素后面的所有元素,即稍后在页面上
答案 0 :(得分:7)
如果您所谈论的元素彼此都是兄弟姐妹,那么.nextAll()
就是要使用的功能。
如果元素在页面上出现任何地方(无论它们嵌套在哪个级别),那么您可以利用jQuery(从1.4版开始)始终返回元素的事实按文档顺序排列,即使您.add()
收集了某些内容。
因此,基本思想是首先选择所有元素,无论它们是在“start”元素之前还是之后,然后将“start”元素添加到集合中。然后,您可以遍历已排序的元素,查找“start”元素的位置。然后只需.slice()
此位置后的所有元素:
var start = '#start';
var all = 'p';
var index;
var afters = $(all).add(start).each(function (i) {
if ($(this).is(start)) {
index = i;
return false; // quit looping early
}
}).slice(index + 1);
在行动here中查看。
答案 1 :(得分:1)
您能提供一段代码,或者至少提供您想要实现的结构或描述样本吗?你检查了hierarchy jQuery selectors吗?
答案 2 :(得分:1)
我不相信有一种简单的方法可以做到这一点。真正的问题是你为什么要这样做?无论如何,如果你真的需要,.nextAll(),。double()和.children()的某些组合将有所帮助。
var nodes = [];
$('#original').nextAll().each(function() {
nodes.push(this);
$(this).children().each(function() {
// some recursive function to add a deep set of children
}
}
但是,你应该做一些不同的事情。
答案 3 :(得分:1)
您如何识别'某个元素'?是使用特定的ID。或者只是标签名称。
您还可以为每个标记为“特定元素”的标记添加ID,并使用nextall()显示id后面的所有内容。这只是一个疯狂的猜测。
答案 4 :(得分:0)