我使用Jquery typeahead
在onClickAfter:函数(node,a,item,event)事件中我做
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 :(得分:1)
使用.find()
遍历孩子
node.closest('td').find('input[name="carParams[2].id"]').attr('value',item.id);
答案 1 :(得分:1)
使用此
node.closest('td').find('input[type=hidden]').first().attr('value',item.id);
https://api.jquery.com/first/如上所述&#34;将匹配元素的集合减少到集合中的第一个。&#34;
您的原始代码会在问题所在的td
而不是input
上执行此操作。 first()
也不接受任何参数。您可以先使用.find()
获取隐藏的输入,然后使用first()
将其缩减为第一个
该解决方案可以应用于不同的形式