Javascript - 使用 2 select 访问数组元素

标签 javascript jquery

我试过了,但没用。它为我提供了一个包含字母的数组。

例如,当我选择“B”和“1”时,结果是“B”而不是“40”。

我不明白为什么?

谢谢你的帮助

$(document).ready(function () {
         
                var A = [10, 20, 30];
                var B = [40, 50, 60];
                var C = [70, 80, 90];
             
                         
                var letter = $('#letter option:selected').val();
                var index = $('#index option:selected').val();
                var result = letter[index];
                $('#result').val(result);
                             
            $( "#letter,#index" ).change(function() {
                var letter = $('#letter option:selected').val();  //For example : "B" selected
                var index = $('#index option:selected').val();  //For example : "1" selected
                var result = letter[index]; 
                $('#result').val(result);  // result is "B" and not "40"
                 
            });
             
        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

     
        <table>
            <tr>
                <td>
                    <select name="letter" id="letter">
                        <option value="A" id="A">A</option>
                        <option value="B" id="B">B</option>
                        <option value="C" id="C">C</option>                                
                    </select>
                </td>
                <td>
                    <select name="index" id="index">
                        <option value=0 id="c1">1</option>
                        <option value=1 id="c2">2</option>
                        <option value=2 id="c3">3</option>
                    </select>
                </td>
                <td>
                    <input type="text"  value="" id="result" disabled/>
                </td>
            </tr>
        </table>

最佳答案

我会使用关联数组将字母选择与数组联系起来。这比为每个数组定义单独的数组更容易。

$(document).ready(function () {
  var array = {A:[10, 20, 30],
              B:[40, 50, 60],
              C:[70, 80, 90]};
  $( "#letter,#index" ).change(function() {
    var letter = $('#letter option:selected').val();
    var index = $('#index option:selected').val();
    var result = array[letter][index];
    $('#result').val(result);
  }).trigger("change");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>     
<table>
    <tr>
        <td>
            <select name="letter" id="letter">
                <option value="A" id="A">A</option>
                <option value="B" id="B">B</option>
                <option value="C" id="C">C</option>                                
            </select>
        </td>
        <td>
            <select name="index" id="index">
                <option value="0" id="c1">1</option>
                <option value="1" id="c2">2</option>
                <option value="2" id="c3">3</option>
            </select>
        </td>
        <td>
            <input type="text"  value="" id="result" disabled/>
        </td>
    </tr>
</table>

关于Javascript - 使用 2 select 访问数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49660772/

相关文章:

javascript - jQuery 选择器中的条件

javascript - 单击 RadioButton 调用 javascript 函数

javascript - 实现表格行的向下滑动

javascript - 使用 jQuery 获取父级 div 文本

javascript - 这种使用 moment.js 解析 ASP.NET 日期的尝试是库的错误还是我的代码的错误?

Safari 中的 Javascript FileReader 检测

javascript - 如何检测对样式的 "scoped"属性的支持

javascript - 在所有 Axios 请求中发送默认 POST 变量

javascript - 如何使用 JQuery Mobile 为 ajax-fill <select> 默认选择 <option>?

javascript - 如何附加以编程方式更改值时触发的 JavaScript 事件处理程序