我有一个选择选项,可以是任意数字的名称:prod_search [] 并通过id:prod_search0,prod_search1,... 2,.3等等
检查下面的样本我有......
<select name="prod_search[]" id="prod_search0">
<option value="o1">Option1</option>
<option value="o2">Option2</option>
</select>
<select name="prod_search[]" id="prod_search1">
<option value="o1">Option1</option>
<option value="o2">Option2</option>
</select>
<select name="prod_search[]" id="prod_search2">
<option value="o1">Option1</option>
<option value="o2">Option2</option>
</select>
现在使用jquery,我将所有上面的选择选项按名称循环为...
$('select[name="prod_search[]"] option:selected').each(function(index) {
prod_search = $(this).val();
prod_text = $(this).text();
//here i need ID of current select in the loop
//...e.g.: prod_search0 or prod_search1 or ...
});
我尝试使用索引,该索引不显示实际ID但给出序列号。 如果删除元素'prod_search1',它将失败。
需要一种正确的方法。
答案 0 :(得分:1)
您的each()
阻止正在option
代码的上下文中运行,因此要获取父代select
的ID,您只需要转到父代:
$(this).parent().attr('id');
答案 1 :(得分:1)
您正在迭代<option>
,并且您需要id
元素的<select>
(他们的父级)。所以请使用$(this).parent().attr("id")
。