嘿伙计们, 我有一个包含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”)...依我如何继续?
谢谢!
答案 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调用的数据参数传递,它将负责为您打包名称和值。试试吧。您不需要循环任何东西并使其成为字符串。如果所有选择都是相同的名称,则它将作为具有相同名称的数组传递。如果他们不是,它会打破它。只需确保设置表单元素的名称。
$(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