我对如何做到这一点有点困惑......
我有一个包含一系列行的表格,每个单元格内都有某些表单元素。我试图仅从最后一行的“代码”输入字段中获取值,并且在语法上遇到问题...
简化的表格如下所示:
<table id="table1">
<tr><td><input type="hidden" name="code" value="XFT" /></td></tr>
<tr><td><input type="hidden" name="code" value="ETY" /></td></tr>
<tr><td><input type="hidden" name="code" value="DHQ" /></td></tr>
</table>
而且,这是不起作用的 jquery...
if($('#cont')) {
$("#cont').live('click', function(event) {
var tr = $('#wr-viewcarttable tr:last');
var itemcode = $(tr > 'input[name="code"]').val();
window.location = "/search?p="+itemcode;
});
}
最佳答案
试试这个:
$('table#table1 tr:last input[name=code]').val();
或者,根据您的代码进行调整:
$('#cont').live('click', function(event) {
var tr = $('#wr-viewcarttable tr:last');
var itemcode = tr.find('input[name=code]').val();
window.location = "/search?p="+itemcode;
});
您的代码中有两个错误,$("#cont')
部分中的引号不匹配,并且您的输入搜索错误。您现在拥有的是:
$(tr > 'input[name="code"]').val();
由于 >
位于引号之外,因此它不是字符串,而是比较运算符,现在将 tr
与 'input[name="code “]'
。比较运算符始终返回 bool 值(true 或 false),因此您可以有效地执行此操作:
$(true).val();
这没有多大意义。如果您有 jQuery 对象,则可以使用 find
方法查找该对象的任何子级,或者将该元素作为上下文传递给 $()
函数。所以这两个可以工作并且是相等的:
tr.find('input[name=code]').val();
$('input[name=code]', tr).val();
在您的情况下,实际上没有理由将 tr
保存到它自己的变量中,因为您只需一个声明即可获取该值,如上所示。
关于jQuery - 从表的最后一行获取输入字段值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2186049/