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);
});