0
$('td').click(function(){    
    $('input:radio').click(function(){    
    })
})

如果我在第二行之后使用 $(this) ,它将引用单选按钮。如何从该行引用 td 元素?我正在尝试将 id 添加到 td 元素,但它会将其添加到单选按钮。

4

3 回答 3

4

在单选按钮处理程序之前保存对此的引用:

$('td').click(function () {
    var self = this;
    $('input:radio').click(function () {
        // self refers to 'this' from the td selection here
    });
});

但是,我不确定这是您真正想要做的,因为您正在做的是为单击 td 上的单选按钮分配单击处理程序。你是这么想的吗?

于 2013-03-06T04:10:24.553 回答
1

有两种方法可以做到:

正如其他人所展示的,您可以使用闭包:

$('td').click(function() {
    var td = this; // Creates a closure
    $('input:radio').click(function(event) {
        // this and event.target refer to the radio button
        // td refers to the <td> element
    });
});

或者您可以使用$.prox()

$('td').click(function() {
    $('input:radio').click($.proxy(function(event) {
        // this refers to the td
        // event.target refers to the radio button
    }, this));
});
于 2013-03-06T04:22:14.667 回答
0
$('td').click(function(){    
    var tdElement = $(this);
    $('input:radio').click(function(){    
        // Do whatever you like with tdElement here
    })
})
于 2013-03-06T04:11:23.497 回答