从数组中返回'this'选择的选项值

时间:2013-11-25 15:36:26

标签: jquery

我尝试过使用每个和grep,但我不认为这些是这个实例中需要的正确事件

这就是我的开始:

var $children = $("select[name^='children'] option:selected")
    .map(function () {
        return $(this).val();
    }).get();

返回:[“1”,“”,“”,“”,“1”,“1”,“1”]

$("#room").on("change", $children, function(){
    alert($(this).val());
});

这会返回控制台中的空白区域(即一条空行的白线),我对这也是什么感到困惑。

编辑:

它是容器中的3个字段之一,用户可以将此容器克隆最多4次。这里只有一个领域,即有问题的领域。

我基本上只想回报一个号码。

HTML:

 <select name="children1" id="children1">
     <option value="0">0</option>
     <option value="1">1</option>
     <option value="2">2</option>
 </select>

5 个答案:

答案 0 :(得分:1)

  

每当用户点击任何子字段时,我就会想要一些   要运行的代码。

我认为这意味着,只要select的值发生变化,获得它的值,并且克隆它们,我会假设它们是动态插入的:

$(document).on('change', 'select[name^="children"]', function() {
     console.log( this.value );
});

答案 1 :(得分:0)

这将给出所选的选项

$('select[name^="children"] option:selected').text();

答案 2 :(得分:0)

尝试

var selected = $("select[name^='children']")
    .map(function () {
    return this.value.length ? this.value : undefined;
}).get();

演示:Fiddle

答案 3 :(得分:0)

听起来你想要获得用户选择的下拉值。要在选择值时执行此操作,您需要将change事件处理程序附加到下拉列表。

示例:

$("select[name^='children']").change(function() {
    var selectedValue = $(this).val();
    alert(selectedValue);
}); 

这也适用于多个下拉菜单。请参阅fiddle

注意:

在这种情况下您也可以使用.text(),但建议您使用.val(),因为它适用于所有输入元素,而.text()有时可能会给您不正确的结果,因为它返回匹配元素及其后代的组合文本内容。

答案 4 :(得分:0)

看看这里:

<强> CODE

$(document).on("change", "select", function(){
    alert($(this).val() + " - " + $(this).attr("id")); 
});

每次选择一个选项时都会触发警报,即使在新“克隆”的选择上也是如此。请参阅小提琴,了解一个工作示例:

小提琴 http://jsfiddle.net/nndKx/1/