如何找到使用jQuery单击的表行?

如何找到使用jQuery单击的表行?,jquery,Jquery,我正在使用“live”函数对表行执行一些点击操作,即 $("tr").live('click',function() { alert('Some table row is clicked'); }); 我想知道单击了哪一行,并使用if-else,基于此提供一些自定义警报。有人能告诉我怎么做吗 非常感谢 编辑1: 是否有一种方法可以引用函数中单击行的元素 $("tr").live('click', function() { if (this.id == "foo") {

我正在使用“live”函数对表行执行一些点击操作,即

$("tr").live('click',function() {
      alert('Some table row is clicked');
});
我想知道单击了哪一行,并使用if-else,基于此提供一些自定义警报。有人能告诉我怎么做吗

非常感谢

编辑1:

是否有一种方法可以引用函数中单击行的元素

$("tr").live('click', function() {
    if (this.id == "foo") {
        alert('the tr with the foo id was clicked');
    }
});​
如果要检查行号,请使用索引:

更新:

如果要检查行号,请使用索引:

更新:


您可以使用此命令访问单击的元素


offtopic:$.live自1.7版以来已被弃用,您应该在上使用$。有关更多信息,请参阅。

您可以使用此选项访问单击的元素

offtopic:$.live自1.7版以来已被弃用,您应该在上使用$。有关更多信息,请参阅。

演示:

HTML:

<table>
    <tr><td>hey</td></tr>
    <tr><td>hi</td></tr>
</table>
学员,现在我将接受我的虚拟积分:D.玩得开心。

演示:

//Even row
$("tr:even").click(function() {
    alert('Even');
});

//Odd row
$("tr:odd").click(function() {
    alert('Odd');
});​
HTML:

<table>
    <tr><td>hey</td></tr>
    <tr><td>hi</td></tr>
</table>

学习者,现在我将接受我的虚拟要点:D.玩得开心。

由于gdoron回答的改进,jQuery的live已被弃用,请尝试委派或继续:

//Even row
$("tr:even").click(function() {
    alert('Even');
});

//Odd row
$("tr:odd").click(function() {
    alert('Odd');
});​

作为对gdoron的answer的改进,jQuery的live已被弃用,请尝试委派或打开:


首先,你不应该使用。永远生活:

您可以改为使用。委派 范例


首先,你不应该使用。永远生活:

您可以改为使用。委派 范例


让我建议一个简单的方法。假设这是您的桌子:

<table>
<tr id = '1' class="tr">...</tr>
<tr id = '2' class="tr">...</tr>
<tr id = '3' class="tr">...</tr>
</table>

希望这对你有帮助。

让我建议一个简单的方法。假设这是您的桌子:

<table>
<tr id = '1' class="tr">...</tr>
<tr id = '2' class="tr">...</tr>
<tr id = '3' class="tr">...</tr>
</table>


希望这对你有所帮助。

@xFortyFourx:如果你把你的评论作为答案发布,我会接受的。正是我想要的@xFortyFourx:如果你把你的评论作为答案,我会接受的。正是我想要的!是的,但即使你使用JQuery<1.4.3,这也是一种不好的做法。如果你在代码中单独使用它,请特别关注。谢谢Rayan,+1的链接。顺便说一句,你是说Ryan Gigs吗不,我的名字是Rayan,同时我也喜欢Ryan Giggs:链接现在断开了404。对,但即使你使用JQuery<1.4.3这也是一种不好的做法。如果你在代码中单独使用它,请特别直播。谢谢Rayan,+1的链接。顺便说一句,你是说Ryan Gigs吗不,我的名字是Rayan,同时我喜欢Ryan Giggs:链接现在断开了404。如果你不能使用。on,没有理由在文档上使用委托而不是。live。它只被弃用于.on,而不被弃用于.delegate,因为.on是added@ThiefMaster. 委托还没有被弃用……好吧,它刚刚被取代。但是我想说,如果您有1.7,您可以将其视为实际上已弃用。@ThiefMaster,从文档中可以看出:从jQuery 1.7开始,.live方法已弃用。使用.on附加事件处理程序。较旧版本的jQuery用户应优先使用.delegate而不是.live.Yes,因为在元素上使用delegate时,尽可能靠近您希望事件来自的元素会更好。但将委托添加到文档实际上与添加live事件相同。如果无法使用.on,则没有理由在文档上使用委托而不是.live。它只被弃用于.on,而不被弃用于.delegate,因为.on是added@ThiefMaster. 委托还没有被弃用……好吧,它刚刚被取代。但是我想说,如果您有1.7,您可以将其视为实际上已弃用。@ThiefMaster,从文档中可以看出:从jQuery 1.7开始,.live方法已弃用。使用.on附加事件处理程序。较旧版本的jQuery用户应优先使用.delegate而不是.live.Yes,因为在元素上使用delegate时,尽可能靠近您希望事件来自的元素会更好。但向文档中添加一个委托实际上与添加一个实时事件是一样的。谢谢您的回答。我还有一个问题。是否有一种方法可以引用函数中单击行的元素?谢谢回答。我还有一个问题。是否有一种方法可以引用函数中单击行的元素?谢谢回答。我还有一个问题。是否有一种方法可以引用函数中单击行的元素?$table tr.eqindex;谢谢你的回答。我还有一个问题。是否有一种方法可以引用函数中单击行的元素?$table tr.eqindex;谢谢甚至我对JQueryThat不是真正的jQuery也不熟悉——这是普通的DOM元素,id是每个DOM元素都具有的属性。因此,在这种情况下,直接访问它的方式更短更快。除此之外,如果您更喜欢使用jQuery方式访问该属性,请使用prop而不是attr。attr有一些神奇的功能来检测您是否真的想要一个属性而不是一个属性,因此它的速度较慢。通常.prop是你想要的-很少有情况下你真的需要.attrI给了你+1的建议,但我真的建议不要使用
数字ID值。谢谢!!甚至我对JQueryThat不是真正的jQuery也不熟悉——这是普通的DOM元素,id是每个DOM元素都具有的属性。因此,在这种情况下,直接访问它的方式更短更快。除此之外,如果您更喜欢使用jQuery方式访问该属性,请使用prop而不是attr。attr有一些神奇的功能来检测您是否真的想要一个属性而不是一个属性,因此它的速度较慢。通常.prop是你想要的-很少有情况下你真的需要.attrI给了你+1的建议,但是我真的建议不要使用数字ID值。
$(document).delegate("tr", "click", function(e) {
 // write your code here 
});
<table>
<tr id = '1' class="tr">...</tr>
<tr id = '2' class="tr">...</tr>
<tr id = '3' class="tr">...</tr>
</table>
$(function(){

$('.tr').click(function(){
var row_no = $(this).attr('id');
alert('Row number '+row_no+' was clicked');
});

});