jQuery:获取循环所有选定选项的所有元素id

时间:2012-08-06 12:21:00

标签: jquery

我有一个选择选项,可以是任意数字的名称: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',它将失败。

需要一种正确的方法。

2 个答案:

答案 0 :(得分:1)

您的each()阻止正在option代码的上下文中运行,因此要获取父代select的ID,您只需要转到父代:

$(this).parent().attr('id');

答案 1 :(得分:1)

您正在迭代<option>,并且您需要id元素的<select>(他们的父级)。所以请使用$(this).parent().attr("id")