我正在尝试获取tr中所有输入的信息,我使用此jquery来测试如何执行此操作,但我无法让它工作。
<table>
<tr id="" class="line">
<input id='' class='' type='hidden' name='rpiid' value='123' />
<input id='' class='' type='hidden' name='sensor_id' value='1' />
<input id='' class='' type='hidden' name='when' value='2014-02-24 05:00:03' />
<td>Home
<BR />2014-02-24
<BR />05:00:03</td>
<td>
<input id='' class='val_displayed' type='text' name='val' value='761' />
</td>
<td>
<input id='' class='' type='checkbox' name='train' value='True' checked />
</td>
<td>
<input id='' class='' type='checkbox' name='valid' value='True' />
</td>
<td>
<button id='update' class='' type='' name='button' value='update' src=''>update</button>
<button id='delete' class='' type='' name='button' value='delete' src=''>delete</button>
</td>
<td id="resultFromGet"></td>
</tr>
<tr id="" class="line">
<input id='' class='' type='hidden' name='rpiid' value='456' />
<input id='' class='' type='hidden' name='sensor_id' value='2' />
<input id='' class='' type='hidden' name='when' value='2014-02-24 04:00:03' />
<td>Home
<BR />2014-02-24
<BR />04:00:03</td>
<td>
<input id='' class='val_displayed' type='text' name='val' value='456' />
</td>
<td>
<input id='' class='' type='checkbox' name='train' value='True' />
</td>
<td>
<input id='' class='' type='checkbox' name='valid' value='True' />
</td>
<td>
<button id='update' class='' type='' name='button' value='update' src=''>update</button>
<button id='delete' class='' type='' name='button' value='delete' src=''>delete</button>
</td>
<td id="resultFromGet"></td>
</tr>
</table>
这是我的jquery代码:
$(document).ready(function () {
var button;
var line;
var inputs;
$('button#update').click(function () {
button = $(this);
line = button.closest('.line');
inputs = line.find('input');
inputs.each(function (id, item) {
alert(item.attr('name'));
});
});
});
我真的不明白出了什么问题,如何将var输入内的所有内容打印到屏幕以进行调试。我也试过了:
alert(JSON.stringify(inputs, null, 4));
但它没有给我任何东西:(。
答案 0 :(得分:0)
元素的ID必须是唯一的,您可以使用按钮值
$(document).ready(function () {
$('button[value=update]').click(function () {
var button = $(this);
var line = button.closest('.line');
var inputs = line.find('input');
inputs.each(function (id, item) {
alert($(item).attr('name'));
});
});
});
演示:Fiddle
或代替ID设置update
/ delete
作为按钮的类名,并将其用作选择器
<button class='update' type='' name='button' value='update' src=''>update</button>
<button class='delete' type='' name='button' value='delete' src=''>delete</button>
然后
$('button.update').click(function () {
...
})
演示:Fiddle
同样在每个循环中,item
是一个dom元素,而不是jQuery对象,所以你必须使用$(item).attr()
答案 1 :(得分:0)
试试这个:
alert($(item).attr('name'));
而不是:
alert(item.attr('name'));
答案 2 :(得分:0)
首先使用class而不是id
<button class='update' type='' name='button' value='update' src=''>update</button>
$(document).ready(function () {
var button;
var line;
var inputs;
$('.update').click(function () {
button = $(this);
line = $(this).parents('tr')
inputs = line.find('input');
inputs.each(function (id, item) {
alert($(item).attr('name'));
});
});
});