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

とJavaScriptで既存のアレイにこのIDを関連付ける:

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

しよう 'window [selec];' – 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

関連する問題