具有特定类

时间:2016-05-16 08:05:08

标签: javascript jquery html

我是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");

它不起作用,因为接下来只在兄弟姐妹中搜索......

你能给我一个提示吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

最简单的选择是前往公共父元素(在本例中为表格行),然后返回到您想要的那个:

$(".mycheckbox").closest("tr").find(".myparentid")

修改:添加一些其他信息:

$(".mycheckbox")

是起始位置,位于:tr&gt; td&gt; input.mycheckbox

(其中>表示在html树的正下方)

.closest向上移动树,直到找到匹配的父元素,因此.closest("tr")会找到

<tr role="row" class="odd">

通过查看直接父“td”,然后它是直接父“tr”。

通常我会在这里使用一个类(<tr class="businessobjectcontainer">)(取决于业务对象是什么),如果你改变它的这一部分它可以是divtr稍后看到.odd我认为这是为了造型而且会有一个.even - 所以这不适合作为选择器。所以“tr”必须这样做。

.find().closest完全相反,然后在树上寻找匹配元素,在这种情况下,.myparentid会找到:tr&gt; td&gt; span.myparentid

这就是你要找的东西。

.find()可能不是最有效的,但它可能是最灵活的,因为它意味着您可以根据需要移动tr的内容。

移动高效的替代方案可能是使用:

$(">td>span.myparentid", $(".mycheckbox").closest("tr")) 

但主要是它只是改变语法。