0
我正在尝试编写一些动态代码,并且我无法确定我之后的元素是兄弟姐妹还是兄弟姐妹的孩子。 我只有一个类,并且必须在元素后面搜索具有此类的第一个元素。 例如:获取某个元素之后的所有元素,包括其子元素
<something class='EitherMe'/>
<table>
<thead class = 'EitherMe'></thead>
<tbody>
<tr class = 'selectAfterThis'><td></td></tr>
.
.
.
</tbody>
<tfoot class ='EitherMe'>
<tr></tr>
<tr class='OrMe'></tr>
</tfoot>
</table>
<something class='OrMe'/>
我会得到“EitherMe”或者根据用户的需要“奥玛”。我需要精确选择那个在'selectAfterThis'之后出现的元素。
nextAll()不起作用。因为它只能得到兄弟姐妹。 有没有办法做到这一点?
更新:我把thead放在上面的例子中,因为大多数建议都是通过父项。我不知道是否没有高一级的元素。 我可以通过限制班级的确切位置来限制我的插件,但如果可能,我想避免这种情况。我只需要带有指定类的元素,它位于'selectAfterThis'下面,不管它是在他的下面,还是远远在他的下面,或者它与'selectAfterThis'的父子关系并不重要
更新3:这是我写的一个迷你插件,来自于wirey的回答。希望它能帮助像我这样的问题的其他人:http://jsfiddle.net/jTLt2/4/。所有的积分都会变得有些费解。我只做了一些修改,使其不仅仅是父母兄弟姐妹和父母兄弟姐妹的孩子。
请让我知道,如果你测试它。我想知道,如果它的工作原理100%
下面的代码:
(function($){
$.fn.nextInView = function(selector)
{
var ret = this.nextAll(selector);
for(var i = 0;this.parents().eq(i).find('body').length < 1 ;i++){
ret = ret.add(this.parents().eq(i).nextAll(selector));
ret = ret.add(this.parents().eq(i).nextAll().find(selector));
}
return ret.first();
}
})(jQuery)
哪里是起点?什么是上下文? –
让我做一个更新,如果可能的话,我想避免通过父母。因为在上面的例子中,例如中可能存在另一个具有该类的元素。尽管机会很渺茫。 – Nogitsune
+0
A
1
+0
+0
+0
相关问题
-
1. jQuery获取下一个元素及其所有子元素
-
2. 返回全文元素(包括子元素/后代元素)
-
3. 检索一个元素的所有文本,包括其python中的子元素
-
4. 需要在特定元素之后获取所有元素
-
5. 在使用jQuery的某个元素之后使用div包装所有元素
-
6. 如何在某个元素之后包装div中的所有元素? (jQuery)
-
7. 获取阵列中两个元素之间的所有元素
-
8. 在另一个元素的子元素之后插入元素
-
9. 获取一个元素的所有父母,包括元素本身
-
10. 获取下一个x元素,包括特定的元素?
-
11. 子元素在其他元素之上
-
12. 获取某个元素的子元素的标题
-
13. Mongoose获取某个元素后的数组中的元素
-
14. 在Beautifulsoup4,获取元素的所有子元素,而不是子元素的子元素
-
15. jQuery:获取所有包含文本的元素,因为它是直接的子元素,包括后代?
-
16. 获取其他元素内的元素
-
17. JavaScript Elementtree获取特定元素之间的所有元素
-
18. 包装两个父元素之间的所有元素
-
19. 选择除元素第一个元素之外的所有子元素
-
20. 遍历所有的DOM元素,包括添加的元素
-
21. 如何获取cElementTree中元素的所有文本子元素?
-
22. 获取textareas元素的所有子元素?
-
23. 使用jQuery获取元素的所有直接子元素
-
24. jQuery:删除前n个元素之后的所有元素?
-
25. SQL:获取元素的子元素
-
26. 获取元素的jQuery的指标 - 只包括某些类型的元素
-
27. 获取子元素不是具有某个CSS类的容器的子元素
-
28. 选择包含某个linkText的元素之前的元素
-
29. 向父元素添加一个子元素,当父元素具有某个具有某个值的某个属性的其他子元素时
-
30. CSS:选择一个元素及其所有子元素
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新问题
-
1. 在角度工人中导入模块?
-
2. Python布尔方法命名约定
-
3. jquery background-image
-
4. 从s3检索音频时出错
-
5. 如何将QR码自动添加到图像
-
6. 16个任务(1048.5 MB)的序列化结果的总大小大于spark.driver.maxResultSize(1024.0 MB)
-
7. 打字稿,使用类没有构造
-
8. PHP通过除去空键
-
9. Jest TypeError:无法读取未定义的'商店'
-
10. 在C++中有没有一种惯用的方法来防止运行一组操作导致集合发生变化的情况?
-
1. jQuery获取下一个元素及其所有子元素
-
2. 返回全文元素(包括子元素/后代元素)
-
3. 检索一个元素的所有文本,包括其python中的子元素
-
4. 需要在特定元素之后获取所有元素
-
5. 在使用jQuery的某个元素之后使用div包装所有元素
-
6. 如何在某个元素之后包装div中的所有元素? (jQuery)
-
7. 获取阵列中两个元素之间的所有元素
-
8. 在另一个元素的子元素之后插入元素
-
9. 获取一个元素的所有父母,包括元素本身
-
10. 获取下一个x元素,包括特定的元素?
好吧..但你想要找到的第一个元素是在之后而不是在之前?并且你父母的兄弟元素中还有那些类? –
回答
需要分别将它们添加到一个集合..然后得到的第一个从集合中找到最接近的一个
http://jsfiddle.net/fRq4z/
来源
2012-12-12 20:10:55
谢谢。我认为这是我需要的。 – Nogitsune
@ user1733078您的欢迎。希望有一个更简单的方法:P ..如果我想到一个我会更新我的答案为你 –
关于最后一行。 “得到父母兄弟姐妹匹配的后代”我不太明白......你能解释一下吗? – Nogitsune
相关问题