2013-01-15 40 views
0

我見到目前爲止以下二維數組值:JavaScript的獲得根據所選的下拉文本字符串

<!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」,我應該檢查是否存在具有該名稱的鍵,如果是,我需要獲取它的數組值。因此在「House」例子中它應該返回「imagedef.jpg」。

任何人都可以請幫忙嗎?謝謝!

回答

1

我設法讓他爲你工作的this的jsfiddle。

你需要做的是讓在KeysArray對象在此線路上正確的密鑰:

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

或者,也可以在2個步驟做是爲了提高可讀性。

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

這可能是值得檢查,看看如果鍵在繼續之前確實存在。我會建議在獲得xkey後進行檢查。

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

嘗試以此爲平變化回調函數體

var xkey = $.trim($(".product option:selected").text()); 
alert(KeysArray[xkey] || 'Not found'); 

我希望這有助於。

1
$('.product').change(function() { 
    var xkey = $.trim($(".product option:selected").text()); 
    alert(KeysArray[xkey]); 
}); 
相關問題