【问题标题】:Jquery - Loop each Selected OptionJquery - 循环每个选定的选项
【发布时间】:2015-05-13 14:48:42
【问题描述】:

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

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

使用 Jquery,我有一个按钮,单击该按钮会克隆此选择并删除 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[] 得到正确的数据

我想做的是通过循环遍历使用类“select”创建的所有选择来将此信息写入 localStorage

我试过了:

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

但 item 不会从下拉列表中返回所选条目,而是返回完整的下拉列表..

知道我该怎么做吗?

谢谢

【问题讨论】:

    标签: jquery local-storage each


    【解决方案1】:

    通过使用 $('.select') 您选择了单个 DOM 元素(及其子元素)。你只需要孩子。试试:

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

    【讨论】:

    • 感谢您的支持 - 但我仍然收到所有完整选项,没有单独选择的项目。知道为什么吗?
    • 这是一个小提琴。我没有您的完整示例代码,但请看一下,我认为您可以将其推断为您需要的内容。 JSFiddle
    • 谢谢,但我仍然可以恢复所有选项,而不仅仅是选定的选项。这就是我得到的iteration &lt;option value="1"&gt;1&lt;/option&gt; iteration &lt;option value="2"&gt;2&lt;/option&gt; iteration &lt;option value="3"&gt;3&lt;/option&gt; iteration 我希望得到的是,如果选择了选项 2,那么我将得到选项 2 的值。
    • 将 JQuery 更改为此工作,因为它返回选定的值。 $('#add').click(function() { $('.select option:selected').each(function(index,item){ console.log( $(item).text() ); }); });这里是小提琴jsfiddle.net/uuvvm3j3/3
    【解决方案2】:

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

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

    需要改成

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

    第一段代码只是选择了选择框而不是它的子项,因此您需要确保您询问的是选择框的选项而不是选择框本身。

    【讨论】:

    • 这似乎与我的测试返回相同,因为我得到了所有结果而不是单个选定的项目。
    猜你喜欢
    • 1970-01-01
    • 2012-05-11
    • 2014-01-18
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多