要求特定阵列填充<select>下拉单击按钮单击

时间:2017-09-22 03:29:09

标签: jquery

我找到了一种方法来填充下拉列表,在特定的单选按钮上单击特定数组...例如在我单击颜色时的示例中。它将显示该数组,或者当您单击产品时,它将显示该数组。但是当我调用产品数组时,我需要帮助摆脱让我们说颜色数组,或者在我调用颜色数组时摆脱产品数组。因此,当我呼叫另一个时,基本上不附加一个数组。 &#13; &#13; var productsArray = [&#39; Cookies&#39;&#39; Milk&#39;&#39; Soda&#39;];&#13; var colorsArray = [&#39; Blue&#39;,&#39; Green&#39;&#39; Red&#39;];&#13; &#13;     $(&#39;输入:无线​​电[名称=&#34; radioSelection&#34;]&#39;)变化(函数(){&#13;。       if($(this).val()===&#39; products&#39;){&#13;         for(var i = 0; i&lt; productsArray.length; i ++){&#13;           $(&#39;#dropdown2&#39;)。附加(&#39;&lt;选项值=&#39; + i +&#39;&gt;&#39; + productsArray [i] +&#39; ;&LT; /选项&GT;&#39;);&#13;         }&#13;       }&#13;       否则如果($(this).val()===&#39; colors&#39;){&#13;         for(var i = 0; i&lt; colorsArray.length; i ++){&#13;           $(&#39;#dropdown2&#39;)。附加(&#39;&lt;选项值=&#39; + i +&#39;&gt;&#39; + colorsArray [i] +&#39; ;&LT; /选项&GT;&#39;);&#13;         }&#13;       }&#13;     });&#13; &lt; script src =&#34; https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt; / script&gt;&#13; &lt; form class =&#34;&#34;行动=&#34;的index.html&#34;方法=&#34;后&#34; ID =&#34;窗口2&#34;&GT;&#13;       &LT p为H.;&#13;       &lt; label for =&#34; productsRadio&#34;&gt;产品&lt; / label&gt;&#13;       &lt; input type =&#34; radio&#34;命名=&#34; radioSelection&#34;值=&#34;产品&#34;&GT;&#13;       &lt; label for =&#34; colorsRadio&#34;&gt; Colors&lt; / label&gt;&#13;       &lt; input type =&#34; radio&#34;命名=&#34; radioSelection&#34;值=&#34;颜色&#34;&GT;&#13;       &LT; / P&GT;&#13;       &lt; select class =&#34;&#34;命名=&#34;&#34; ID =&#34; dropdown2&#34;&GT;&#13;       &LT; /选择&GT;&#13;     &LT; /形式&GT;&#13; &#13; &#13; 这是一个js-fiddle示例...当您选择颜色单选按钮,然后选择产品单选按钮时,下拉列表将填充两个数组。但我希望它一次只能填充一个数组。当选择颜色单选按钮时,我想要颜色数组,然后当我想要产品数组时,我希望清除颜色数组并显示产品数组。希望有道理!

1 个答案:

答案 0 :(得分:1)

你几乎就在那里,问题在于它只是追加,因为你只是告诉脚本要这么做。你只需要添加东西,你也需要删除东西。

试试这个

$('input:radio[name="radioSelection"]').change(function(){ 
  $('#dropdown2').empty();
   ...

编辑:

// this will select the second element (because the first one is = 0) 
for(var i = 0; i < productsArray.length; i++) { 
if(i == 1) { 
  $('#dropdown2').append('<option value='+i+' selected>'+colorsArray[i]+'</option>');
} else { ...do as normal... }