Jquery - 循环每个选定的选项

Jquery - Loop each Selected Option

我有一个非常简单的表单,其中包含一个 select 下拉列表。

<select name ='select[]' id='select' class='select'>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>2</option>
</select>

使用 Jquery 我有一个按钮,单击该按钮会克隆此 select 并删除 ID。

$('#add').click(function() {
    var $new = $('#row').clone(true).removeAttr('id');
    $new.find('*').andSelf().removeAttr('id');
    $('#tbl_test tr:last').before($new);
    return false;
});

在提交表单时,我从 select[]

获得了正确的数据

我想做的是通过遍历使用 class 'select'

创建的所有 select 将此信息写入 localStorage

我已经试过了:

$('.select').each(function(index,item){
    localStorage.setItem('new',item);
});

但项目不是 return 下拉列表中的 selected 条目,而是完整的下拉列表..

知道我该怎么做吗?

谢谢

通过使用 $('.select') 你 selecting 一个单一的 DOM 元素(和它的 children)。您只需要 children。尝试:

$('.select').children().each(function(index,item){
    localStorage.setItem('new',item);
});

您并没有真正显示您示例中受影响的所有 html,但

$('.select').each(function(index,item){
    localStorage.setItem('new',item);
});

需要更改为

$('.select option').each(function(index,item){
    localStorage.setItem('new',item);
});

第一段代码只是 select 是 select 框,而不是子框,因此您需要确保您要求的是 select 框的选项,而不是 select 盒子本身。