到目前为止,我有以下内容:

<!DOCTYPE HTML>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html" />
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <title>
      Select Value From Array
    </title>
  </head>
  <body>

    <script type="text/javascript">
        var KeysArray = {
            "Lake":"imageabc.jpg",
            "House":"imagedef.jpg",
            "PC":"imageghi.jpg",
            "Sky":"imagejkl.jpg"
        }
        $(function(){
            $('.product').change( function() {
                var xkey = $.trim( $(".product option:selected").text() );
                // alert(xkey);
            });
        });
    </script>

    <div>

      <select class="product" title="">
        <option value="">
          -- Select --
        </option>
        <option value="123">
          Lake
        </option>
        <option value="456">
          House
        </option>
        <option value="789">
          PC
        </option>
        <option value="101">
          Sky
        </option>
      </select>

    </div>

  </body>
</html>


从下拉列表中选择一个值后,我需要将其选项文本值与现有的对应数组值进行比较。

因此,如果用户选择“ House”,则应检查是否存在具有该名称的键,如果是,则需要获取它的数组值。因此,在“房屋”示例中,它应返回“ imagedef.jpg”。

有人可以帮忙吗?谢谢!

最佳答案

我设法使其在this jsfiddle上为您工作。

您需要做的是在此行的KeysArray对象中获取正确的密钥:

var xkey = KeysArray[ $.trim( $(".product option:selected").text() ) ];


或者,您可以分两步执行此操作以提高可读性。

var xkey = $.trim( $(".product option:selected").text() );
xkey = KeysArray[xkey];




在继续操作之前,可能值得检查一下该密钥是否确实存在。我建议在得到xkey之后再检查一下。

if (typeof xkey !== 'string') { xkey = 'Not found'; }

09-07 20:29