2017-08-13 67 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