在jQuery中引用新创建的对象最简洁的方法是什么?

在jQuery中引用新创建的对象最简洁的方法是什么?,jquery,traversal,Jquery,Traversal,我有一个函数,叫做点击TD中的链接。单击后,我遍历将DOM备份到链接所在的TR,然后在它之后创建一个新的TR 到目前为止还不错 现在我已经创建了一个新的TR,其中包含一个TD,现在最好是指新创建的TD。或者,我是否需要遍历从原始单击对象创建的新TD $("td.expandable a").click(function(){ // figure out the number of columns we need to span var colspan; colspan =

我有一个函数,叫做点击TD中的链接。单击后,我遍历将DOM备份到链接所在的TR,然后在它之后创建一个新的TR

到目前为止还不错

现在我已经创建了一个新的TR,其中包含一个TD,现在最好是指新创建的TD。或者,我是否需要遍历从原始单击对象创建的新TD

$("td.expandable a").click(function(){
    // figure out the number of columns we need to span
    var colspan;
    colspan = $(this).parents("tr").children("td").size();

    // insert the new TR
    $(this).parents("tr").after("<tr><td colspan=' & colspan & '></td></tr>");

    // **what syntax would I use here to refer to the above made TD?**

    return false;
});
$(“td.expandable a”)。单击(函数(){
//计算出需要跨越的列数
var-colspan;
colspan=$(this).parents(“tr”).children(“td”).size();
//插入新的TR
$(本)。父母(“tr”)。在(“”)之后;
//**我在这里会使用什么语法来指代上述TD**
返回false;
});
$(“td.expandable a”)。单击(函数(){
//计算出需要跨越的列数
var colspan=$(this).parents(“tr”).children(“td”).size(),
tr=$(“”);
//插入新的TR
$(本)。父母(“tr”)。在(tr)之后;
//**我在这里会使用什么语法来指代上述TD**
tr.find('td'))
返回false;
});
如果你正在更新一个tr,你也可以用
最近的
来代替
父母
<代码>$(this).parents('tr').next().find('td')
insertAfter().wrap()对于这种类型的东西很方便:

$('td.expandable a').click(function() {
    var $parent = $(this).parents('tr');
    var colCount = $parent.children('td').size();
    var $td = $('<td colspan=' + colCount + '></td>');
    $td.insertAfter($parent).wrap('<tr></tr>');
    return false;
});
$('td.expandable a')。单击(函数(){
var$parent=$(this.parents('tr');
var colCount=$parent.children('td').size();
var$td=$('');
$td.insertAfter($parent.wrap)(“”);
返回false;
});

我使用了字符串浓缩操作符“+”。“&”用于整数按位计算和。

tr.find('td')不会批处理新创建的tr的所有实例吗?在我的例子中,我们可能会插入一组,并且只想匹配我刚刚创建的一个。我可能误解了“父母”。这是以数组形式返回对象的父TR还是所有父TR?如果是后者,我想我需要最近的。啊,事实上……我需要使用“最近的”而不是“父母”,因为我只有一个单亲。另外,在第二次阅读时,我现在意识到'tr'不是一个字符串,而是一个实际的jquery对象,因此,实际上,它将匹配那个特定的对象。谢谢你,梅德尔!
$('td.expandable a').click(function() {
    var $parent = $(this).parents('tr');
    var colCount = $parent.children('td').size();
    var $td = $('<td colspan=' + colCount + '></td>');
    $td.insertAfter($parent).wrap('<tr></tr>');
    return false;
});