将Select对象传递给函数,然后使用jQuery进行处理

将Select对象传递给函数,然后使用jQuery进行处理,jquery,Jquery,我在一个页面上有几个Select对象,当选择一个选项时,它们需要相同类型的处理。因此,我想将Select对象传递给一个公共函数,这样我只需编写一次处理。我在onchange()事件上这样做,如下所示: <select name="dropDown1" id="dropDown1" onchange="processData(this);"> 这是一个完整的模型: <!doctype html> <html> <head>

我在一个页面上有几个Select对象,当选择一个选项时,它们需要相同类型的处理。因此,我想将Select对象传递给一个公共函数,这样我只需编写一次处理。我在onchange()事件上这样做,如下所示:

<select name="dropDown1" id="dropDown1" onchange="processData(this);">
这是一个完整的模型:

<!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>

函数processData(obj){
//需要访问obj参数的.index()、.val()和.text()
//例如:
//var indx=$(“选择[name='dropDown1']option:selected”).index();
// ...
}
红色
绿色
蓝色
感谢您的指导。

非常简单:

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。

您的意思是选择元素,对吗?这太完美了。谢谢我试图在代码中用“obj”替换Select对象的名称,这就是它不起作用的原因。
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;