2017-10-19 34 views
0

使用jQuery預輸入Jquery的隱藏的輸入選擇,以寫值

在onClickAfter:功能(節點,一個,項目,活動)事件我做

node.closest('td').first('input[type=hidden]').attr('value',item.id); 

的HTML代碼

的一部分
<td> 
    <input type="hidden" name="carParams[2].id"> 
    <input type="hidden" name="carParams[2].idJoins"> 
    <div class="typeahead__container cancel"> 
      <div class="typeahead__field"> 
       <span class="typeahead__query"> 
        <span class="typeahead__cancel-button"></span><input name="carParams[2].name" class="form-control js-typeahead" type="search" placeholder="Type partial value" autocomplete="off"> 
       </span> 
      </div> 
    <div class="typeahead__result"><ul class="typeahead__list"><li class="typeahead__item typeahead__group-carparam"><a href="javascript:;" data-group="carParam" data-index="0"><span class="typeahead__display"><strong>color value</strong></span></a></li></ul></div></div> 
</td> 

問題是值字段是不是把一個正確的地方...

<td value="45"> 

希望把它放到<input type="hidden" name="carParams[2].id">

+0

https://api.jquery.com/first/嘗試' node.closest( 'TD')。找到( '輸入[類型=隱藏]')。第一個()。ATTR ....' – Huangism

回答

1

使用此

node.closest('td').find('input[type=hidden]').first().attr('value',item.id); 

https://api.jquery.com/first/的規定「減少匹配的元素集合到第一中該集合。「

您的原始代碼在td上執行此操作,而不是input這是問題所在。另外first()不接受任何參數。您可以使用.find()首先得到隱藏的輸入,然後使用first()將其降低到第一個

該解決方案可以適用於不同的形式

1

使用.find()遍歷孩子

node.closest('td').find('input[name="carParams[2].id"]').attr('value',item.id);