<tr>
<td>
<input type="text" name="desc[]">
</td>
<td>
<input type="text" name="duration[]">
</td>
<td>
<input type="text" name="start[]" class="start">
</td>
<td>
<input type="text" name="wait[]">
</td>
<td>
<input type="text" name="end[]">
</td>
<td>
<input type="text" name="phone[]">
</td>
</tr>
我有这么多行。我需要在输入名称为start的td上的keyup事件中获取所有tds的值(我还需要避免使用desc []和phone []的值)。因为他们很多我不能使用id,所以需要帮助使用jquery的父子方法。
我能够在上面提到的td上的keyup事件上达到父tr,但是无法访问其他tds中的输入字段的值。我使用的jquery代码
$(document).ready(function(){
$(".start").keyup(function(){
alert($(this).parent().get(-3).tagName);
})
});
答案 0 :(得分:36)
啊我觉得现在明白了。看看这真的是你想要的:
$(".start").keyup(function(){
$(this).closest('tr').find("input").each(function() {
alert(this.value)
});
});
这将为您提供一行的所有输入值。
<强>更新强>
要获得不的所有元素,您可以使用:not()
:
$(this).closest('tr').find("input:not([name^=desc][name^=phone])").each(function() {
alert(this.value)
});
实际上,我并不是100%确定它是否以这种方式工作,也许你必须使用两个not
而不是这两个条件。
答案 1 :(得分:1)
var values = {};
$('td input').each(function(){
values[$(this).attr('name')] = $(this).val();
}
尚未测试,但应该这样做......
答案 2 :(得分:0)
我很难弄清楚你到底在找什么,所以希望我不会偏离基础。
我假设您的意思是当输入中的键盘事件发生在“start”类时,您希望得到相邻&lt; td&gt; s中所有输入的值:
$('.start').keyup(function() {
var otherInputs = $(this).parents('td').siblings().find('input');
for(var i = 0; i < otherInputs.length; i++) {
alert($(otherInputs[i]).val());
}
return false;
});
答案 3 :(得分:0)
也许这会有所帮助。
var inputVal = $(this).closest('tr')。find(“ td:eq(x)input”)。val();