我可以从现有元素中获取jQuery对象吗?

时间:2009-07-14 06:52:09

标签: javascript jquery

我有一个功能

function toggleSelectCancels(e) {
       var checkBox = e.target;
       var cancelThis = checkBox.checked;

       var tableRow = checkBox.parentNode.parentNode;

}

如何获取包含tableRow的jQuery对象 通常我会去$("#" + tableRow.id),这里的问题是tableRow的id是这样的"x:1280880471.17:adr:2:key:[95]:tag:"。它由infragistics控件自动生成。当id是这样时,jQuery似乎不是getElementById。但是,标准dom document.getElementById("x:1280880471.17:adr:2:key:[95]:tag:")会返回正确的行元素。

无论如何,有没有办法从dom元素中获取jQuery对象?

谢谢, 〜在圣地亚哥

6 个答案:

答案 0 :(得分:15)

答案 1 :(得分:2)

您可以在DOM元素上调用jQuery函数:$(tableRow)

在这种情况下,你也可以使用jQuery的closest方法:

var tableRowJquery = $(checkBox).closest('tr');

如果您想继续使用您的ID kgiannakakis (下方),请提供关于如何escape characters with special meaning in a jQuery selector的绝佳链接。

答案 2 :(得分:2)

jQuery可以使用DOM元素,尝试使用:

$(tableRow)

$(checkBox.parentNode.parentNode)

答案 3 :(得分:2)

你应该能够直接传递元素,如下所示:

$(tableRow)...

我通过创建对div的引用,然后将其直接传递给jQuery来测试它,并为您创建jQuery对象。

答案 4 :(得分:1)

请参阅this了解如何转义ID。

答案 5 :(得分:0)

尝试:

var r = $(document.getElementById("XXXX----ID Of Your Row----XXXX"));

现在,如果 document.getElementById 未返回undefined,则可以将r用作任何常规jquery对象。