2017-08-13 30 views
1

我在JavaScript中有一个问题(和一个问题)。使用Id关联现有阵列

我想用一个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]) 
} 

请有人可以帮助我吗?

非常感谢!

+0

如果它没有引用数组,那么它引用? –

+0

你试图*绑定数组作为'select'的选项吗? – kukkuz

+0

尝试'窗口[选择];' – NewToJS

回答

1

我不确定,但我认为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]); 
+0

它正在工作!它看起来很简单,但我没有想到这样做,所以非常感谢你!:) 对不起,有一些信息,下次我会做得更好:)! – Lucas

+1

一个很好的建议和更好的方法。使用对象比多个数组更好。 ** + 1 ** – NewToJS