各位,我jquery初学,现在的情况是下拉框全部从后台数据库中拼出来的,name值一样
如下 :下拉框的name取值一样,都为selectName1,我想实现选择每个下拉框打印出该下拉框自己的已选值
(不要跟我说在每个下拉框后面加上onChange()事件哈)
先谢谢各位了! <script type="text/javascript" src="jslib/jquery.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("select[@name=selectName1]").change(function()
{ //如果这样由于id一样,排在第二个位置的下拉框,当change的时候 取不到值 ?
//alert($("#selectTest").val()); //显示下拉框中已选文本值 ,同上
//alert($("#selectTest option[@selected]").text()); //如果用以下,会把两个下拉框选中的值叠加起来,如选择美国的时候,打印的值为 "美国11" 怎么办?
// alert($("select[@name=selectName1] option[@selected]").text());
});
});
</script> <table align="center">
<tr>
<td>
<select id="selectTest" name="selectName1">
<option value="1">中国</option>
<option value="2">美国</option>
<option value="3">德国</option>
</select>
</td>
</tr> <tr><td>
<select id="selectTest" name="selectName1">
<option value="a1">11</option>
<option value="a2">22</option>
<option value="a3">33</option>
</select>
</td></tr>
</table>
如下 :下拉框的name取值一样,都为selectName1,我想实现选择每个下拉框打印出该下拉框自己的已选值
(不要跟我说在每个下拉框后面加上onChange()事件哈)
先谢谢各位了! <script type="text/javascript" src="jslib/jquery.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("select[@name=selectName1]").change(function()
{ //如果这样由于id一样,排在第二个位置的下拉框,当change的时候 取不到值 ?
//alert($("#selectTest").val()); //显示下拉框中已选文本值 ,同上
//alert($("#selectTest option[@selected]").text()); //如果用以下,会把两个下拉框选中的值叠加起来,如选择美国的时候,打印的值为 "美国11" 怎么办?
// alert($("select[@name=selectName1] option[@selected]").text());
});
});
</script> <table align="center">
<tr>
<td>
<select id="selectTest" name="selectName1">
<option value="1">中国</option>
<option value="2">美国</option>
<option value="3">德国</option>
</select>
</td>
</tr> <tr><td>
<select id="selectTest" name="selectName1">
<option value="a1">11</option>
<option value="a2">22</option>
<option value="a3">33</option>
</select>
</td></tr>
</table>
一组元素可以用下标.eq(0) .eq(1)来取 。
你这个还可以用$(this).val()来获取 !
$("#selectName1 option:selected").attr("text"); 这样写简单一些。
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("select[name=selectName1]").change(function(e)
{ //如果这样由于id一样,排在第二个位置的下拉框,当change的时候 取不到值 ?
//alert($("#selectTest").val()); //显示下拉框中已选文本值 ,同上
//alert($("#selectTest option[@selected]").text()); //如果用以下,会把两个下拉框选中的值叠加起来,如选择美国的时候,打印的值为 "美国11" 怎么办?
// alert($("select[@name=selectName1] option[@selected]").text()); alert(e.target.value);//这个是选择值
alert($("option:selected", e.target).text());//这个是文本
});
});
</script> <table align="center">
<tr>
<td>
<select id="selectTest" name="selectName1">
<option value="1">中国</option>
<option value="2">美国</option>
<option value="3">德国</option>
</select>
</td>
</tr> <tr><td>
<select id="selectTest" name="selectName1">
<option value="a1">11</option>
<option value="a2">22</option>
<option value="a3">33</option>
</select>
</td></tr>
</table>
比如说 第一个默认选择的是 中国 ,我change后选择的是 美国 ,我怎么获得选择前的 “中国”值 ?
兄弟你这样跟我之前的写的是一样的,会把所有的text 联起来
$("select[name='selectName1']").change(function(e){
var countrName = $("select[name=selectName1] option:selected").text();
alert(countrName);
});
});
在测试一下。
alert(e.target.value);//这个是选择值
是获得change后 下拉框已选值,我想在change事件中在选择新的值前获得该下拉框默认的选择值 怎么写啊?
比如说 第一个默认选择的是 中国 ,我change后选择的是 美国 ,我怎么获得选择前的 “中国”值 ?
谢谢了,兄弟,答的很好,再问个问题哈
alert(e.target.value);//这个是选择值
是获得change后 下拉框已选值,我想在change事件中在选择新的值前获得该下拉框默认的选择值 怎么写啊?
比如说 第一个默认选择的是 中国 ,我change后选择的是 美国 ,我怎么获得选择前的 “中国”值 ?
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("select[name=selectName1]").change(function(e)
{ //如果这样由于id一样,排在第二个位置的下拉框,当change的时候 取不到值 ?
//alert($("#selectTest").val()); //显示下拉框中已选文本值 ,同上
//alert($("#selectTest option[@selected]").text()); //如果用以下,会把两个下拉框选中的值叠加起来,如选择美国的时候,打印的值为 "美国11" 怎么办?
// alert($("select[@name=selectName1] option[@selected]").text()); alert(e.target.options[0].text);//默认的值
alert(e.target.value);//这个是选择值
alert($("option:selected", e.target).text());//这个是文本
});
});
</script> <table align="center">
<tr>
<td>
<select id="selectTest" name="selectName1">
<option value="1">中国</option>
<option value="2">美国</option>
<option value="3">德国</option>
</select>
</td>
</tr> <tr><td>
<select id="selectTest" name="selectName1">
<option value="a1">11</option>
<option value="a2">22</option>
<option value="a3">33</option>
</select>
</td></tr>
</table>
<select id="selectTest" name="selectName1">
<option value="1">中国</option>
<option value="2" selected="true">美国</option>
<option value="3">德国</option>
</select>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("select[name=selectName1]").each(function(){
$(this).attr("dsov",$("option:selected", this).val()).attr("dsot",$("option:selected", this).text());
});
//dsov is short for DefaultSelectedOptionValue
//dsot is short for DefaultSelectedOptionText$("select[name=selectName1]").change(function(e)
{ //如果这样由于id一样,排在第二个位置的下拉框,当change的时候 取不到值 ?
//alert($("#selectTest").val()); //显示下拉框中已选文本值 ,同上
//alert($("#selectTest option[@selected]").text()); //如果用以下,会把两个下拉框选中的值叠加起来,如选择美国的时候,打印的值为 "美国11" 怎么办?
// alert($("select[@name=selectName1] option[@selected]").text()); alert($(e.target).attr("dsov"));//默认的值
alert($(e.target).attr("dsot"));//默认的值
alert(e.target.value);//这个是选择值
alert($("option:selected", e.target).text());//这个是文本
});
});
</script> <table align="center">
<tr>
<td>
<select id="selectTest" name="selectName1">
<option value="1">中国</option>
<option value="2">美国</option>
<option value="3">德国</option>
</select>
</td>
</tr> <tr><td>
<select id="selectTest" name="selectName1">
<option value="a1">11</option>
<option value="a2">22</option>
<option value="a3">33</option>
</select>
</td></tr>
</table>