Javascript 如何在单击时使用jquery获取表的tr值

Javascript 如何在单击时使用jquery获取表的tr值,javascript,jquery,html,Javascript,Jquery,Html,我有一个示例表 <table class="table"> <tr value="1" class="side-link"> <td>one</td> <td>two</td> </tr> <tr value="2" class="side-link"> <td>one</td> <td>two</td> &

我有一个示例表

<table class="table">
  <tr value="1" class="side-link">
    <td>one</td>
    <td>two</td>
  </tr>
 <tr value="2" class="side-link">
    <td>one</td>
    <td>two</td>
  </tr>
</table>
问题是,我无法将其对应于我单击的相应“tr”,而是它得到
.table
的值。 有人能解决这个问题吗?我将非常感激!谢谢:)

注意:它需要(单击)因为我必须使用ajax替换tr,并且仅使用单击功能无法识别新元素

Jquery版本1.9.1

$(".table").on('click','tr',function(e){
    e.preventDefault();
    var id = $(this).attr('value');
    alert(id);
}); 
您(正如您所说)得到的是表的值,而不是TR

修改代码如下:

$(".table tr").on('click','.side-link',function(e){
e.preventDefault();
var id = $(this).attr('value');
alert(id);
}); 

这应该得到正确的值。

您的代码也可以正常工作。请检查您是否包含
jquery version>=1.7
,或者尝试
$(function(){…})
中写入您的代码。
它可能会在
表呈现之前运行

你也可以像这样尝试

$(function(){
    $(".table .side-link").on('click',function(e){
        e.preventDefault();
        var id = $(this).attr('value');
        alert(id);
    });
});

如果它是
id
,那么为什么要使用
value
使用
id=“1”等等..

已更新如果上述方法无效,则在
html
有效的情况下尝试此方法(IMHO)

$(function(){
    $(document).on('click',".table .side-link",function(e){
        e.preventDefault();
        var id = $(this).attr('value');
        alert(id);
    });
});

很好地使用HTML5数据属性。。这就是HTML5引入数据属性的确切原因。并确保您使用的是jquery的最新版本(>1.6)

仅在jQuery1.6之后

HTML

 <table class="table">
   <tr data-value="1" class="side-link">
     <td>one</td>
     <td>two</td>
   </tr>
 <tr data-value="2" class="side-link">
    <td>one</td>
    <td>two</td>
 </tr>
</table>

好的,看看这个获取Tr值或Td值:

HTML代码:

<table class="table" border='1'>
    <tr value="1" class="side-link">
        <td>one</td>
        <td>two</td>
        <td>three</td>
    </tr>
    <tr value="2" class="side-link">
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
</table>
$(".table").on('click', 'tr', function () {
    var trValue = $(this).attr('value');
    var tdValue = $(this).children('td').map(function (index, val) {
            return $(this).text();
        }).toArray();
        // all td value with comma seprated
    alert(tdValue);
    // current tr attr value
    alert(trValue);
});

我正在尝试获取相应tr的属性!请阅读问题carefully@Wang“lPakhrin,因为您提到使用ajax您正在尝试添加新的trs。我在这个提琴@PraveenJeganathan中尝试了同样的东西,没有ajax,谢谢!我刚刚用tr替换了我的类名,效果很好!在我看来很好,你是想要'tr'值还是'tr'中的所有'td'值?@HasanAlaca,如果你不想回答,那就好了@里德,谢谢你的帮助!谢谢,这不起作用,因为
value
与tablehey@rid没有关联,您的代码也不起作用。。我试过了。无论如何感谢Shi rohan,它工作得很好,是的,我知道,主要原因是当我使用ajax时,新的tr元素被放置了新的值,然后单击将不起作用,因为它需要单击来处理新元素。不管怎样,谢谢。我不像你那样是天才,所以如果你想帮忙,那就帮忙吧!!我不想要table的值,我是指tr,。。我所做的是错误的,我想要tr的属性!!!!!!!!!谢谢@Neeraj,我知道答案了
<table class="table" border='1'>
    <tr value="1" class="side-link">
        <td>one</td>
        <td>two</td>
        <td>three</td>
    </tr>
    <tr value="2" class="side-link">
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
</table>
$(".table").on('click', 'tr', function () {
    var trValue = $(this).attr('value');
    var tdValue = $(this).children('td').map(function (index, val) {
            return $(this).text();
        }).toArray();
        // all td value with comma seprated
    alert(tdValue);
    // current tr attr value
    alert(trValue);
});