关于JQuery的问题 - 按类获取某些选定项的值

时间:2011-06-03 11:08:28

标签: javascript jquery

嘿伙计们, 我有一个包含4个选择标签的表单:

<select class="section_1">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
</select>
<select class="section_1">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
</select>
<select class="section_1">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
</select>
<select class="section_1">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
</select>

我想通过jquery获取“section_1”的所有类及其选定的选项值。

我现在得到了:$(“。section_1”)...依我如何继续?

谢谢!

6 个答案:

答案 0 :(得分:4)

将所有值都放入数组中:

var values = [];
$(".section_1").each(function() {
    values.push($(this).val());
});

或者,正如J-P建议的那样.map()

var values = $.map($(".section_1"), function(i) {
    return i.value;
});

真的只是你使用的味道问题。

答案 1 :(得分:4)

$(".section_1 option:selected").each(function() {
    alert($(this).val());
});

正如Matt在评论中指出的那样,在select上调用.val()会输出数组中所有选定的option值:

var values = $('.section_1').val();
alert(values.join(', '));

答案 2 :(得分:4)

您可以使用.each来循环播放

$(".section_1").each(function(){
    alert(this.value);
});

或者您可以使用.map()

var selectedValues = $(".section_1").map(function(){
    return this.value;
}).get().join(',');

您可以看到working demo

答案 3 :(得分:1)

这样的东西?:

$(".section_1").each(function(){
    var currentObjVal = $(this).val();
    //do something with your currentObjVal...
});

答案 4 :(得分:0)

如果您只是在下面调用并将其作为jquery ajax调用的数据参数传递,它将负责为您打包名称和值。试试吧。您不需要循环任何东西并使其成为字符串。如果所有选择都是相同的名称,则它将作为具有相同名称的数组传递。如果他们不是,它会打破它。只需确保设置表单元素的名称。

Example

  $(function(){
    $("#bt1").click(function(){
        var selectedVals = $("select.section_1");
         $.ajax({
            type: "POST",
            url: "www.yoururl.com",
            data: selectedVals,
            success: function(data) {

            }
        });
    });
});

答案 5 :(得分:0)

选项:如果要对选项标签执行某些操作而不是选择标记,则需要选择过滤器。在任何其他情况下,您只需使用.val()方法。

案件可能就像

$('select option:selected').remove(); // remove the selected items

$('select option:not(:selected)').remove() // remove the items not selected