真正的下一个具有特定类的元素
Really next element with specific class
我是Jquery的新手,很抱歉问了我这个愚蠢的问题。
这是我的HTML代码:
<tr role="row" class="odd">
<td><input type="checkbox" class="mycheckbox" value="2166"></td>
<td class="sorting_1">2166</td>
<td><span class="myparentid">743</span>
</td><td>0</td>
</tr>
我想从"mycheckbox"元素跳到"myparentid"元素,忽略树结构。在Jquery中,我尝试了一些类似的东西:
var checkedRow = $(".mycheckbox");
var nextelem = checkedRow.next(".myparentid");
它不起作用,因为下一次搜索只在兄弟姐妹中。。。
你能给我一个提示吗?
谢谢!
最简单的选择是向上转到一个公共父元素(在本例中是表行),然后返回到您想要的元素:
$(".mycheckbox").closest("tr").find(".myparentid")
- https://api.jquery.com/closest/
- https://api.jquery.com/find/
编辑:添加一些附加信息:
$(".mycheckbox")
是起始位置,位于:tr>td>input.mycheckbox
(其中>
表示在html树的正下方)
.closest
向上移动树,直到找到匹配的父元素,因此.closest("tr")
将找到
<tr role="row" class="odd">
通过查看直接父级"td",它就是直接父级的"tr"。
通常情况下,我会在这里使用一个类(<tr class="businessobjectcontainer">
)(取决于业务对象是什么),然后它可以是div
或tr
,如果您稍后更改它的这一部分,看到.odd
,我会认为这是用于样式设置的,并且会有一个.even
,所以这不是理想的选择器。所以"tr"就行了。
.find()
执行与.closest
相反的操作,并向下树查找匹配元素,在这种情况下,.myparentid
将找到:tr>td>span.myparentid
这就是你想要的。
.find()
可能不是最高效的,但它可能是最灵活的,因为它意味着你可以随心所欲地移动tr
的内容。
一个移动高效的替代方案可能是使用:
$(">td>span.myparentid", $(".mycheckbox").closest("tr"))
但大多数情况下,它只是改变语法。
相关文章:
- 滚动到容器中的下一个元素-几乎到了
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 真正的下一个具有特定类的元素
- jQuery转盘下一个元素没有滑入
- 获取锚点的下一个元素
- j查询 如何选择当前元素之后的下一个元素
- 获取下一个或上一个隐藏元素的高度,以设置父元素的高度.jquery.
- 如何在 JavaScript 中获取下一个元素和更新
- jQuery网站的键盘快捷键,焦点使用左键和右键转到上一个或下一个元素
- 如果上一个元素为空,则隐藏下一个元素
- 使用表时,Jquery Next()未正确突出显示下一个元素
- 如何将所有下一个元素包装到
- 获取活动元素之后的下一个元素
- jQuery-在每个复选框中获取下一个元素
- 找不到下一个元素
- 正在从元素中获取下一个className
- 如何获取下一个元素's值-jquery
- 如何选择 $(this) 之后的下一个元素
- 专注于下一个元素
- Jquery 选择元素下一个/上一个/最近