Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环通过多个选择字段选项值_Javascript_Jquery - Fatal编程技术网

Javascript 循环通过多个选择字段选项值

Javascript 循环通过多个选择字段选项值,javascript,jquery,Javascript,Jquery,我有一个选择字段,可以选择多个选项。这些选项的值是图像URL(例如“img/image.png”)。当用户单击某个选项时,我希望图像(或如果选择了多个图像)显示在“选择”字段下方。我对jQuery输出的内容感到困惑。到目前为止,我已经: $(document).ready(function(){ $('.logo-select').on('change', function(){ var options = $('.logo-select').val();

我有一个选择字段,可以选择多个选项。这些选项的值是图像URL(例如“img/image.png”)。当用户单击某个选项时,我希望图像(或如果选择了多个图像)显示在“选择”字段下方。我对jQuery输出的内容感到困惑。到目前为止,我已经:

$(document).ready(function(){

    $('.logo-select').on('change', function(){

        var options = $('.logo-select').val();

        $(options).each(function(){
            console.log(this);
        });

    });
});
我假设这将输出每个选项的值,但我在控制台中得到以下结果:

String {0: "i", 1: "m", 2: "g", 3: "/", 4: "i", 5: "m", 6: "a", 7: "g", 8: "e", 9: ".", 10: "p", 11: "n", 12: "g", length: 20, [[PrimitiveValue]]: "img/image.png"}

为什么要将值分解为单个字母?如何使其仅输出图像路径?

在应用程序上下文中,此
引用
$(选项)
-对象

尝试使用-function将外部函数的上下文中的
绑定到内部回调:

$(document).ready(function(){

    $('.logo-select').on('change', function(){
        var options = $('.logo-select').val();

        $(options).each(function(){
            console.log(this);
        }.bind(this));

    });
});

使用
有时可能会有点棘手,
始终引用从中调用它的上下文。这意味着,在
每个
这个
代表
$(选项)
,在外部,它代表
$('.logo select')
,使用
这个
绑定您的选择

$(document).ready(function(){

    $('.logo-select').on('change', function(){
        var options = [];
        options.push($(this).val());

        $(options).each(function(){
            console.log(this);
        });

    });
});
您可以使用
$(this).find('option:selected')
.on(“change”,…)
中查找('option:selected'),您可以在每个循环中填充结果数组,如下所示

$(文档).ready(函数(){
$('.logo select')。在('change',function(){
var options=$(this.find('option:selected');
var-arr=[];
console.clear();
$(选项)。每个(函数(){
arr.push($(this.val());
});
控制台日志(arr);
});
});

选择1
选择2
选择3
选择4

检查JSFIDLE,这可能会对您有所帮助

$('.logo select')。在('change',function()上{
var options=$('.logo select').val();
var splitOptions=options.split(',');
console.log(splitOptions);

对于(var i=0;iYou可以使用
$(this)。在
中查找('option:selected')
。在(“更改”,…)
上,您解决了问题吗?
$('.logo-select').on('change', function(){

    var options = $('.logo-select').val();
    var splitOptions = options.split(',');
    console.log(splitOptions);
    for(var i=0; i<splitOptions.length; i++){
        console.log(splitOptions[i]);
    };

});