jquery无法从输入元素中获取值(2)

时间:2013-01-15 07:42:24

标签: jquery select input find selector

我正在使用jquery尝试检索文本输入的值,但它无法正常工作。谁能看到我做错了什么? http://jsfiddle.net/silvajeff/4Sb8K/3/

<table id="oustandingItems">
  <tr><th>Category</th></tr>
  <tr><td><input name="mytest" /></td></tr>
  <tr><td><input name="mytest" value="123"/></td></tr>
  <tr><td><input name="mytest" /></td></tr>
  <tr><td><input name="mytest" /></td></tr>
</table>


<button id="findRow">Find Row</button>
<input type="text" id="myRow" />

$("#findRow").click(function() {   
  var tableRow = $('#oustandingItems tr:has(td input[value!=""])').prevAll().length;  
 var myValue = $('#oustandingItems input:has(td input[value!=""])').val();
  $("#myRow").val(myValue);
});

3 个答案:

答案 0 :(得分:2)

您可以将选择器简化为#oustandingItems tr input[value!=""]

$("#findRow").click(function() {
  var myValue = $('#oustandingItems tr input[value!=""]').val();
  $("#myRow").val(myValue);
});

JSFiddle

答案 1 :(得分:0)

你可以尝试这个:http://jsfiddle.net/4Sb8K/6/

$("#findRow").click(function() {   
  var myValue = $('#oustandingItems').find('input[value!=""]').val();
  $("#myRow").val(myValue);
});

答案 2 :(得分:0)

用于查找带有值的输入框的选择器是错误的。

- var myValue = $('#oustandingItems input:has(td input[value!=""])').val();

+ var myValue = $('#oustandingItems input[value!=""]').val();

BTW,.val()方法只返回第一个元素的值,如果您的选择器匹配多个元素。如果需要遍历所有元素,请使用.each()方法。