jQuery - 从表的最后一行获取输入字段值?

n00*_*101 6 jquery html-table

我对如何做到这一点感到有点困惑......

我有一个包含一系列行的表,并且在每个单元格中都有某些表单元素.我试图从最后一行的"代码"输入字段中获取值,并且我的语法有问题...

简化表如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

而且,这是不起作用的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;
            });
        }
Run Code Online (Sandbox Code Playgroud)

Tat*_*nen 12

试试这个:

$('table#table1 tr:last input[name=code]').val();
Run Code Online (Sandbox Code Playgroud)

或者,根据您的代码调整:

$('#cont').live('click', function(event) {
    var tr = $('#wr-viewcarttable tr:last');
    var itemcode = tr.find('input[name=code]').val();
    window.location = "/search?p="+itemcode;
});
Run Code Online (Sandbox Code Playgroud)

您的代码中有两个错误,$("#cont')部件中的引号不匹配,输入搜索错误.你现在拥有的是:

$(tr > 'input[name="code"]').val();
Run Code Online (Sandbox Code Playgroud)

由于>超出的报价,这是不是一个字符串,而是一个比较运营商,现在比较tr'input[name="code"]'.比较运算符总是返回布尔值(true或false),因此您实际上是这样做的:

$(true).val();
Run Code Online (Sandbox Code Playgroud)

哪个没有多大意义.如果您有一个jQuery对象,则可以使用该find方法查找该对象的任何子对象,或者将该元素作为上下文传递给该$()函数.所以这两个将起作用并且是平等的:

tr.find('input[name=code]').val();
$('input[name=code]', tr).val();
Run Code Online (Sandbox Code Playgroud)

实际上没有理由tr在你的情况下保存它自己的变量,因为你可以在一个声明中获得值,如上所示.