创建一个包含链接到选择菜单的数据的数组

时间:2016-12-05 19:55:01

标签: javascript arrays select

(希望这个问题还没有解决)如果是的话,对不起,请把我链接到解决方案。 (这是我现在正在参加Java课程的练习,所以我对Javascript很新手。) 我有一个带旅行目的地的选择菜单。有4-5个目的地(巴黎,伦敦,阿姆斯特丹,柏林,纽约..)对于每个目的地,有一个简短的描述和一定的价格。 所以练习说:当有人点击选择菜单中的某个选项时,相应的描述必须出现在textarea中,并在文本输入中显示相应的价格。 (这是一些基本的东西)..我知道一些html对象是如何工作的,我似乎无法找到使用select对象执行此操作的最佳方法。我通过名称属性和for循环使用复选框。与radiobuttons一样..但有选择选项我被卡住了。我不需要练习的解决方案,我只需要一个示例代码,但我理解的东西。 例如:  巴黎 等等  

类似于:对于选定的选项[i],textarea.value =与每个旅行目的地和文本input.value =旅行的价格相关联的描述。 我不想要这样的东西:if selectedIndex [0] --- textarea.value = X. 我需要做一些类似目的地的数组.. trip [i] = new Array []并用描述字符串的价格和变量填充trip数组的数组..(我希望我已经清楚了所有的事情)我需要 。 谢谢你们。

1 个答案:

答案 0 :(得分:0)

定义一个对象数组,您可以在其中对每个位置和索引进行键值映射。

 var array = [{'key': 0, 'value': 'Paris'},{'key': 1, 'value': 'London'},{'key': 2: 'value': 'Amsterdam'}...]

循环遍历数组并填充选择选项:

 <select>
 {array.map((each)=>{return (<option value= each.key></option>)})}
 </select>

在事件处理程序中,将键映射到数组中的值以获取文本。

 selectHandler(val){
    let result = array.find((each)=>{return each.key === val});
    var textarea = document.getElementById('textArea');
    textarea.value = result.value;
 }