2014-01-10 33 views
0

我有幾個選擇對象在頁面上,當選擇一個選項時需要相同類型的處理。所以,我想將選擇對象傳遞給一個通用函數,所以我只需要編寫處理一次。我做的是,對的onchange()事件如下:通過選擇對象功能,然後用jQuery處理

<select name="dropDown1" id="dropDown1" onchange="processData(this);"> 

什麼我現在想知道,是我可以從一個PARAM通過這樣的對象如下:

function processData(obj) { 
    // Need to access .index(), .val() and .text() of the obj param 
} 

這是一個完整的實物模型:

<!doctype html> 
<html> 
    <head> 
     <title></title> 
     <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
     <script> 
      function processData(obj) { 
       // Need to access .index(), .val() and .text() of the obj param 
       // Like the following: 
       // var indx = $("select[name='dropDown1'] option:selected").index(); 
       // ... 
      } 
     </script> 
    </head> 
    <body> 
     <div id="container" class="container"> 
      <select name="dropDown1" id="dropDown1" onchange="processData(this);"> 
       <option value="1">Red</option> 
       <option value="2">Green</option> 
       <option value="3">Blue</option> 
      </select> 
     </div> 
    </body> 
</html> 

感謝您的任何指導。

+0

你的意思是選擇***元素***吧? – adeneo

回答

0

很簡單:

var value = $(obj).val(); 
// or 
var value = obj.value; 

var text = $(obj).children('option:selected').text(); 

var index = $(obj).children('option:selected').index(); 
// or 
var index = obj.selectedIndex; 

但如果你已經使用jQuery,那麼你也應該用jQuery附加事件處理程序。

+0

這是完美的。謝謝!我試圖用代碼中的「obj」替換Select Object的名稱,這就是爲什麼它不起作用。 – RobertFrenette