change事件是select下拉框值改变后触发的,所以只能在之前的click或mousedown中先获取一个临时变量储存以前的值。
还有你说的下拉框不知道是哪个的问题,这个确实比较难办,即使循环$("select[name=selectName1]")包含的元素,也不知道顺序,最好的办法就是你事先先给select定一个标志,比如第一个select,定flag = 0,第二个定flag=1,依次类推,而且你要知道哪个flag对应什么内容的select。
$(document).ready(function(){
var tempValue,tempName;
$("select[name=selectName1]").mousedown(function(){
tempValue = $(this).val();
tempName = $(this).find('option:selected').text();
});
$("select[name=selectName1]").change(function(){
alert('change之前的值与文本显示 ' + tempValue + ' ' + tempName)
//如果这样由于id一样,排在第二个位置的下拉框,当change的时候 取不到值 ?
alert($(this).val());
//显示下拉框中已选文本值 ,同上
alert($(this).find('option:selected').text());
///如果用以下,会把两个下拉框选中的值叠加起来,如选择美国的时候,打印的值为 "美国11" 怎么办?
//页面上有几个select,这个应该可以知道的。
var text= '';
for(var i=0;i<2;i++){
text += $("select[flag="+i+"]").find('option:selected').text();
}
alert(text);
//如果不知道页面上有几个select,而且不管顺序的话,也可用下面的方法
var text= '';
for(var i=0;i
text += $("select[name=selectName1]:eq("+i+")").find('option:selected').text();
}
alert(text);
//alert($("select[name=selectName1]:eq(0)").find('option:selected').text() + $("select[name=selectName1]:eq(1)").find('option:selected').text())
});
});
中国 美国 德国 |
11 22 33 |
2012年1月08日 15:17