从jquery到jquery

时间:2012-07-27 20:29:09

标签: jquery dom

具有

var a = $("#HTMLiFRAME").contents().find('xxx'); //only reference not actual code

指向对象:

<td>hi</td>

在表格中:

 <tr id="1">
     <td>hi</td>
 </tr>
 <tr id="2"></tr>
 <tr id="3"></tr>
 <tr id="4"></tr>

我怎样才能下降到

<tr id="3></tr>

仅使用next(),offsetParents()等方法

//ids or clases are not known

4 个答案:

答案 0 :(得分:1)

这个怎么样?

var a = $("td:contains('hi')").parent().siblings().last();

编辑:所以你不想要最后一个......你想要第二个持续?怎么样?

var a = $("td:contains('hi')").parent().siblings().last().prev();

编辑2:所以你不希望第二个你想要...在第一个之后?怎么样?

var a = $("td:contains('hi')").parent().next().next();

答案 1 :(得分:1)

您的HTML格式错误(需要封装表格标签),并且它正在搞砸您可能希望做的任何DOM遍历。正确编写HTML代码,使用.parent()或.closest('tr')从单元格到行,然后使用.next()或.nextUntil()来选择下一行。

工作示例:
http://jsfiddle.net/W3yqu/

没有评论jQuery选择器内的document.getElementById;)

答案 2 :(得分:0)

真的有很多方法可以做到这一点。然而,我会以不同的方式接近这一点,考虑到我将需要下一个选择。

var a = $(document.getElementById("id")),
    tbody = a.find('tbody');

var td = tbody.find('#1'),
    anotherTd = tbody.find('#2'); //etc

答案 3 :(得分:0)

如果你想做一个完整的jquery,你可以做这样的事情。

http://api.jquery.com/next-siblings-selector/

http://api.jquery.com/eq-selector/

var item = $(“#1~td:eq(1)”)