如何仅使用javascript在change中显示此数组第二列中的内容

How do I display the content in the second column of this array onchange using javascript only

本文关键字:二列 数组 javascript 何仅使 change 显示      更新时间:2023-09-26

我今天早些时候问了一个问题,并能让人了解我的问题所在,所以我希望闪电能击中两次。

当您在下拉列表中选择信息时,我正在尝试显示第二列中的信息。

例如,我希望能够选择"文本A1",而将显示的文本是"文本A2"。这是我迄今为止所拥有的。

我的脚本在标题部分

<script type="text/javascript">
window.onload = function() {
    var maps = new Array();
        maps[0] = "Select one";
        maps[1] = "Text A1", "Text A2", "Text A3";
        maps[2] = "Text B1", "Text B2", "Text B3";
        maps[3] = "Text C1", "Text C2", "Text C3";
        maps[4] = "Text D1", "Text D2", "Text D3";
        maps[5] = "Text E1", "Text E2", "Text E3";
        maps[6] = "Text F1", "Text F2", "Text F3";
    var map = document.getElementById("complaintType");
    for (i=0;i<maps.length;i++) {
        var Entry = document.createElement("option");
        Entry.text = maps[i];
        map.add(Entry ,null);
    }
    function showhide() {
        var div = document.getElementById("complaintMap");
        if (div.style.display !== "none") {
            div.style.display = "none";
        }
    }
    var list = document.getElementById('complaintType');
    var tag = document.getElementById('tag');
    list.onchange = function() {
    tag.innerHTML = this.value;
  }
}
</script>

我的HTML

<form>
    <select name="complaintType" id="complaintType">
    </select>
</form>
<div id="tag"></div>

我的直觉是,我需要把第30行改为

tag.innerHTML = this.value;

比如

tag.innerHTML = XXXX.value;

问题是,我不知道把XXXX改成什么。我是找错树了还是走对了路?我只能用javascript来实现。不喜欢JQuery

在我看来,您的maps数组不是合适的Javascript。当我在Firefox中测试它时,我得到了一个类似的数组

0 => 'Select one',
1 => 'Text A1',
2 => 'Text B1',
...

我想你是想得到类似的东西

var maps = new Array();
maps.push(new Array('Text A1', 'Text A2', 'Text A3'));
maps.push(new Array('Text B1', 'Text B2', 'Text B3'));
...

由于我猜你是从数据库中读取这些文本/值的,所以只需使用JSON encode(对于PHP,例如<?php echo json_encode(array(array('Text A1', 'Text A2'), array('Text B1', 'Text B2'))); ?>,你就会明白了

这只适用于数组。针对您的特定问题:

我做了一把小小提琴,你想怎么做就怎么做。它不仅使用数组,还使用对象。看看,如果你不明白它是如何工作的:http://jsfiddle.net/rdfg3dch/

Btw。地图的PHP就像一样

<script type="text/javascript">
    var maps = <?php echo json_encode(array(
        array('option' => 'Text', 'text' => 'Text'),
        array('option' => 'displayed', 'text' => 'displayed'),
        array('option' => 'in', 'text' => 'in'),
        array('option' => 'Dropdown', 'text' => 'Output'),
        array('option' => 'Foo', 'text' => 'Bar')
    )); ?>;
</script>