获取jQuery无效的select元素中的所有选项

时间:2014-02-05 06:55:48

标签: javascript jquery html5

我正在尝试获取包含所有值的字符串列表

这是我的html:

  <label>Select Roles</label>
    <span id="dualselect" class="dualselect">
        <select name="RolesSelect" id="dualSelectRoles1" multiple="multiple" size="10">
            <option value="">Avaliable Roles</option>
        </select>

        <span class="ds_arrow">
            <span class="arrow ds_prev">&laquo;</span>
            <span class="arrow ds_next">&raquo;</span>
        </span>

        <select name="select4" multiple="multiple" id="dualSelectRoles2" size="10">
            <option value="12">Users Roles</option>
        </select>
    </span>

这是我的JS:

   <script>
function submitForm() {
    var arr = new Array;
    $("#dualSelectRoles2").each(function () {
        arr.push($(this).val());
    });
    alert(arr);
}
</script>

我的警报什么都没显示?

4 个答案:

答案 0 :(得分:1)

应该是:

  var arr = new Array;
$("#dualSelectRoles2 option").each(function () {
    arr.push($(this).val());
      alert(arr);
});

<强> Fiddle

答案 1 :(得分:1)

您需要引用选项元素,然后迭代它们:

var arr = new Array;
$("#dualSelectRoles2 option").each(function () {
    arr.push(this.value);
});
alert(arr);

此外,您可以将$(this).val()替换为this.value。你不需要这里的jQuery对象。

<强> fiddle

答案 2 :(得分:0)

您需要在select中找到选项元素,然后使用.map()

function submitForm() {
    var arr = $("#dualSelectRoles2 option").map(function () {
        return this.value
    }).get();
    alert(arr);
}

答案 3 :(得分:0)

DEMO:http://jsfiddle.net/qsDn5/22/

你需要在每个选项中运行循环。

 var arr = new Array;
    $("#dualSelectRoles2 option").each(function () {
        arr.push(this.value);
    });
    alert(arr);