使用 Id 关联现有数组

Use an Id to associate an existing array

我在 JavaScript 中有一个问题(和一个问题)。

我想为选项列表使用 ID :

<select id="map_select">
<option value="1" id="test1" >Test 1</option>
<option value="2" id="test2" >Test 2</option>
</select>

并将此 ID 关联到 JavaScript 中的现有数组:

var test1 = ["blabla 1","blabla 2"]
var test2 = ["blabla 1","blabla 2"]

我在 jQuery 中尝试了一些东西:

var selec = $('#map_select option:selected').attr('id');

但是当我在我需要的函数中使用它时(需要一个带有 push、indexoff 的数组...),它没有引用我的数组:

function tabused(tab1, tab2){

    var rand = Math.floor(Math.random()*tab2.length)

    if(tab1.length <= tab2.length){
                if (tab1.indexOf(rand) === -1) {
                    tab1.push(rand);
                } 
                else if (tab1.indexOf(rand) > -1) {
                    while(tab1.indexOf(rand) > -1){
                        rand = Math.round(Math.random()*(tab2.length-1));
                    }
                    tab1.push(rand);
                }
                console.log(tab1)
            }
            $("#rules").text(tab2[rand])
}

有人能帮帮我吗?

非常感谢!

我不确定,但我认为 id 不能像那样引用到 js 中的数据结构。

您可以尝试使用字典。

var test= {
            "test1":["blabla 1","blabla 2"],
            "test2":["blabla 1","blabla 2"]
          };

在使用时,您可以只搜索您的 id 作为字典的关键字。

var selec = $('#map_select option:selected').attr('id');
console.log(test[selec]);