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