Javascript 使用jQuery选择对象的子对象

Javascript 使用jQuery选择对象的子对象,javascript,jquery,html,Javascript,Jquery,Html,我使用此函数打开一个模式对话框,需要使用“dblclicked”节点中的一些信息填充该对话框: $(function(){ $(".delete").live('dblclick', function () { var id = $(this).attr('id'); $('#delID').val(id); var txt = this.parentNode.children[2].innerHTML; $("#detai

我使用此函数打开一个模式对话框,需要使用“dblclicked”节点中的一些信息填充该对话框:

$(function(){
    $(".delete").live('dblclick', function () {
        var id = $(this).attr('id');
        $('#delID').val(id);
        var txt = this.parentNode.children[2].innerHTML;
        $("#details").html(txt);
        $("#delAssign").dialog('open');
    });
});
html的示例:

<tr>
    <td class='delete'></td>
    <td></td>
    ...
    <td></td>
</tr>
<tr>
...
</tr>
使用纯javaScript

问题是“如何使用jQuery为var txt获得相同的结果?”

如下所示:

var txt = $(this).parent().children().eq(2).html();
.parent()
选择父元素

.children()
选择子项

.eq(2)
选择子元素中索引为
2
的元素

.html()
获取此元素的html内容

编辑:
子项(':eq(2)
更改为
children()。由于Felix Kling,eq(2)
如下所示:

var txt = $(this).parent().children().eq(2).html();
.parent()
选择父元素

.children()
选择子项

.eq(2)
选择子元素中索引为
2
的元素

.html()
获取此元素的html内容

编辑:
子项(':eq(2)
更改为
children()。由于Felix Kling,eq(2)
可以将其更改为:

var txt = $(this).siblings(":eq(2)").html();
我认为这是最快的解决方案。

您可以将其更改为:

var txt = $(this).siblings(":eq(2)").html();
var txt = $(this).siblings().eq(2).html();
我认为这是最快的解决办法

var txt = $(this).siblings().eq(2).html();
使用
eq()
作为方法,而不是传递它,因为选择器速度更快

无论如何,既然已经有了JavaScript解决方案,为什么要使用jQuery来降低速度

使用
eq()
作为方法,而不是传递它,因为选择器速度更快



无论如何,既然您已经有了JavaScript解决方案,为什么要使用jQuery来降低速度?

请提供关联的htmlplease提供关联的HTMLY您有错误的语法-:eq pseudoclass使用()而不是[]好的。我只看了你的传奇:)如果你做了
children(),那就更好了。情商(2)
。谢谢@Kokos,你的回答很有魅力!我缺少pseudoclass
:eq(2)
您的语法错误-:eq pseudoclass使用()而不是[]好的。我只看了你的传奇:)如果你做了
children(),那就更好了。情商(2)
。谢谢@Kokos,你的回答很有魅力!我错过了伪类
:eq(2)
eq
的兄弟姐妹将不总是工作,因为
不包括在内。如果
出现在开头,则可能会取消索引。您需要改用
:n子对象(2)
。jQuery可以很好地处理其$(this)对象。它将始终适用于在$(“.delete”)中找到的DOM对象。无论如何,您在以下方面错了:n个孩子:)。第n个孩子从1开始计数,第0个孩子从:eq开始计数,因此如果要使用:第n个孩子,则索引应为3。@Dennis的意思是
。兄弟姐妹
不会返回父代的所有孩子。示例:想象这是第三个孩子。所以
:等式(2)
应该返回自身。但是
$(this)。兄弟姐妹(:eq(2)”)
将返回第四个节点作为
$(this)。兄弟姐妹
排除
。谢谢@avall这
。兄弟姐妹()
真的完成了任务!!我只需要改变一件事:因为
$(这个)
,我不再使用
parentNone
,我不得不把
(“:eq(2)”)
改成
(“:eq(1)”
我的错。丹尼斯没有把“这个”包括在内是对的。好吧,一直在学习!具有
eq
的兄弟姐妹并不总是有效,因为
不包括此
。如果
出现在开头,则可能会取消索引。您需要改用
:n子对象(2)
。jQuery可以很好地处理其$(this)对象。它将始终适用于在$(“.delete”)中找到的DOM对象。无论如何,您在以下方面错了:n个孩子:)。第n个孩子从1开始计数,第0个孩子从:eq开始计数,因此如果要使用:第n个孩子,则索引应为3。@Dennis的意思是
。兄弟姐妹
不会返回父代的所有孩子。示例:想象这是第三个孩子。所以
:等式(2)
应该返回自身。但是
$(this)。兄弟姐妹(:eq(2)”)
将返回第四个节点作为
$(this)。兄弟姐妹
排除
。谢谢@avall这
。兄弟姐妹()
真的完成了任务!!我只需要改变一件事:因为
$(这个)
,我不再使用
parentNone
,我不得不把
(“:eq(2)”)
改成
(“:eq(1)”
我的错。丹尼斯没有把“这个”包括在内是对的。好吧,一直在学习!