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);