用jQuery获取下一个最接近的选择元素 [英] Getting next closest select element with jquery
本文介绍了用jQuery获取下一个最接近的选择元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想获取下一个select元素(因为将有多个具有相同id的代码),这是代码
I want to get the next select element (because there will be multiple with the same id) and here is the code
function fillProds(catid) {
$.get("http://localhost/crops/?module=from-receipt&action=getproducts&format=json&catid="+catid , null,function(d){
CC = eval(d);
t = $(this).find('select');
alert(t);
t.options.length=0;
t.options[0]=new Option("","");
for(i=0;i<CC.length;i++) {
t.options[i+1]=new Option(CC[i].name,CC[i].id);
}
});
}
以及html部分
<tr>
<td class="first" width="172">
<select onchange="fillProds(this.value)" id="catid">
<option></option>
<?php foreach ( $cats as $v => $r ) { ?>
<option value="<?=$r['id']?>"><?=$r['name']?></option>';
<?php } ?>
</select>
<td>
<input type="hidden" name="transindetid[]" value="" />
<select name="transindet[prodid][]" id="prods" class="validate-not-first">
<option></option>
</select>
</td>
<td class="last">
<input type="text" name="transindet[qty][]" class="required" value="">
<a href="#" class="delRow" style="color:red">x</a>
</td>
</tr>
所以问题是我收到诸如设置undefined的长度之类的错误,可能是因为我没有正确获取select元素. 对上述内容进行任何更正,以便我可以使其正确运行并选择下一个选择元素吗?
So the issue is I get errors like setting length of undefined probably because I am not getting the select element correctly. Any correction for the above so that I can make it work correctly and pick the next select element?
谢谢.
推荐答案
好的,我有解决办法
function fillProds(catid,obj) {
$.get("http://localhost/crops/?module=from-receipt&action=getproducts&format=json&catid="+catid , null,function(d){
CC = eval(d);
trs = $(obj).closest('tr');
t = trs.find('#prods').get(0);
t.options.length = 0;
t.options[0]=new Option("","");
for(i=0;i<CC.length;i++) {
t.options[i+1]=new Option(CC[i].name,CC[i].id);
}
});
}
<tr>
<td class="first" width="172">
<select onchange="fillProds(this.value,this)" id="catid">
<option></option>
<?php foreach ( $cats as $v => $r ) { ?>
<option value="<?=$r['id']?>"><?=$r['name']?></option>';
<?php } ?>
</select>
<td id="select">
<input type="hidden" name="transindetid[]" value="" />
<select name="transindet[prodid][]" id="prods" class="validate-not-first">
<option></option>
</select>
</td>
<td class="last">
<input type="text" name="transindet[qty][]" class="required" value="">
<a href="#" class="delRow" style="color:red">x</a>
</td>
</tr>
因此,目前它正在寻找最接近的tr并获取具有id prods的FIRST元素(我认为)
so at the moment its looking for the nearest tr and getting the FIRST element (i think) that has the id prods
这篇关于用jQuery获取下一个最接近的选择元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文