2014-10-21 19 views
-1

只是測試jQuery的一些代碼片段,基本上在我的代碼的bug,現在在於這一細分市場:如何使用嵌套選擇在jQuery的

HTML

<div id="qi_table"> 
     <tr name="1"> 
      <td> 
       <input type="text" name="qty" class="qty"> 
      </td> 
     </tr> 
     <tr name="2"> 
      <td> 
       <input type="text" name="qty" class="qty"> 
      </td> 
     </tr> 
     <tr name="3"> 
      <td> 
       <input type="text" name="qty" class="qty"> 
      </td> 
     </tr> 
</div> 

JS

var sysID = 2; 

$('#qi_table tr').eq(0).find('input[name=qty]').val(sysID); 

我期待的結果是3個文本輸入字段,第一個填入數字「2」。

結果是我只得到3個空的文本字段。這是怎麼回事?我錯誤地使用jQuery後代選擇器?

鏈接:http://jsfiddle.net/1nf6n0vf/1/

框架設置爲jQuery的1.10.1

+0

小提琴的語法是不正確的,小心使用字符串 – charlietfl 2014-10-21 23:08:35

回答

0

你需要改變你的HTML,以便錶行和單元格是table(而不僅僅是一個div)內;

<table id="qi_table"> 
     <tr name="1"> 
      <td> 
       <input type="text" name="qty" class="qty"> 
      </td> 
     </tr> 
     <tr name="2"> 
      <td> 
       <input type="text" name="qty" class="qty"> 
      </td> 
     </tr> 
     <tr name="3"> 
      <td> 
       <input type="text" name="qty" class="qty"> 
      </td> 
     </tr> 
</table> 

你的jQuery應該可以正常工作。

0

可以簡化查詢:

$("input[name='qty']", "#qi_table").val(sysID); 

然後你搜索在qi_table所有輸入。

+0

打開和關閉字符串,包括我自己在內,使用上下文參數並不是簡化它......使得閱讀困難比從左到右的選擇器 – charlietfl 2014-10-21 23:10:57

+0

只因爲你不習慣或不理解它並不意味着它不會簡化它。無論哪種方式,它不是簡化我的意思是你真的使用jQuery -_-所以真正的「簡化」很可能不是正確的用詞。整個圖書館都是垃圾 – EasyBB 2014-10-21 23:13:06