Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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_Arrays - Fatal编程技术网

Javascript 如何从选择器获取所有选项值并生成阵列字符串

Javascript 如何从选择器获取所有选项值并生成阵列字符串,javascript,arrays,Javascript,Arrays,这是选择列表选项 <select name="List" id="List"> <option value="">-Select-</option> <option value="">id1@option1</option> <option value="">id2@option2</option> <option value="">id

这是选择列表选项

<select name="List" id="List">
        <option value="">-Select-</option>
        <option value="">id1@option1</option>
        <option value="">id2@option2</option>
        <option value="">id3@option3</option>
    </select>
注意:我要获取的字符串如下:

id1,obj,option1,img1,id2,obj,option2,img2,id3, obj,option3,img3
注意:我得到的字符串是:

id1,obj,option1,img1id2,obj,option2,img2id3,obj,option3,img3
我的代码:在这里,我获取所有选项值,并使用@符号拆分它们,然后将它们传递到列表中的一个数组,我希望生成一个模式

var options = document.getElementById("List");
var opts, opt = "";
var temp = "";
for(var i =1; i <options.length; i++){
    var option=options[i].textContent.split('@');
    var A = option[0];
    var B = option[1];
    //this is the array am producing 
    opt = new Array(new Array(A,'obj',B));

    for(var j= 0; j < opt.length; j++) {
       temp += opt[j];
    }
    opts  = temp;
}

alert(opts);

要创建数组值,请迭代除第一个之外的元素,提取它们的textContent值并创建适当的数组

然后,用逗号表示

const options=[…document.querySelectorAll'List option'] .1//跳过第一个 .map{textContent},i=>{ const vals=textContent.split'@'//在上拆分文本@ VAL.1,0,'obj'//在位置1插入obj vals.push`img${i+1}`//追加imgX。我只是在这里猜测 返回VAL } const str=options.flat.join',' document.body.textContent=str -挑选- id1@option1 id2@option2 id3@option3
这回答了你的问题吗@罗伯特门内尔我已经重新定义了我的问题,请看一看,我很难理解你的编辑。你能用清晰的语言解释一下你想做什么吗?img1、img2等值来自哪里?我已经重新定义了我的问题,请看一看
var options = document.getElementById("List");
var opts, opt = "";
var temp = "";
for(var i =1; i <options.length; i++){
    var option=options[i].textContent.split('@');
    var A = option[0];
    var B = option[1];
    //this is the array am producing 
    opt = new Array(new Array(A,'obj',B));

    for(var j= 0; j < opt.length; j++) {
       temp += opt[j];
    }
    opts  = temp;
}

alert(opts);