2013-01-15 52 views
1

我正在使用jquery試圖檢索文本輸入的值,但它不工作。任何人都可以看到我做錯了什麼? http://jsfiddle.net/silvajeff/4Sb8K/3/jquery無法從輸入元素獲取值(2)

<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); 
}); 
+0

+1 for JSFiddle –

回答

2

您可以選擇簡化爲#oustandingItems tr input[value!=""]

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

JSFiddle

0

你可以試試這個:http://jsfiddle.net/4Sb8K/6/

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

您的選擇找到輸入框與價值錯誤。

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

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

順便說一句,.VAL()方法僅返回第一個元素的值,如果選擇多個元素相匹配。如果您需要遍歷所有元素,請使用.each()方法。