日期:2014-05-16 浏览次数:20429 次
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <style type="text/css"> .jTest{ height:150px; width:80px; margin:20px; font-size:16px; } </style> <script type="text/javascript" src="jquery-1.7.1.js"></script> <script type="text/javascript"> $(function() { $('.jTest').change( function() { var checkText = $(".jTest").find("option:selected").text().trim(); var checkValue = $('.jTest').val(); $('#input1').val(checkText); $('#input2').val(checkValue); }); }); </script> <body> <select class="jTest" size="5"> <option value="a">a</option> <option value="b">b</option> <option value="c">c</option> <option value="d">d</option> </select> <select class="jTest" size="5"> <option value="a2">a2</option> <option value="b2">b2</option> <option value="c2">c2</option> <option value="d2">d2</option> </select><br/> <form> Text<input type="text" id="input1"/> Value<input type="text" id="input2"/> </form> </body> </html>
$(function() { $('.jTest').change( function() { //因为$('.jTest')是一个对象集合,change事件中其实是会去遍历其下每个元素的,因此,你不能在使用$(".jTest")去获取值,应该使用$(this)去获取当前对象,以你这个例子来说。会有两次操作,第1次是得到第1个下拉框,第2次是得到第2个下拉框。循环体中使用$(this)即可获取 var checkText = $(this).find("option:selected").text().trim(); var checkValue = $(this).val(); $('#input1').val(checkText); $('#input2').val(checkValue); }); });
------解决方案--------------------
还有一个.trim()方法是已经定义了的么?
------解决方案--------------------
jquery中trim()是trim(" 删除前面的空格")这么使用的
------解决方案--------------------
你的代码思路非常正确,只要改一点点就可以了:
<script type="text/javascript"> $(function() { $('.jTest').change( function() { var checkText = $(this).find("option:selected").text().trim(); var checkValue = $(this).val(); $('#input1').val(checkText); $('#input2').val(checkValue); }); }); </script>
------解决方案--------------------
$(function() {
$('.jTest').change(
function() {
var checkText = $(".jTest").find("option:selected").text().trim();
var checkValue = $('.jTest').val();
$('#input1').val(checkText);
$('#input2').val(checkValue);
});
});
$(".jTest")是个集合,,你在点击了第二个select却没点击第一个的时候,$(".jTest").change触发,但是$(".jTest").find("option:selected").text().trim()取到的是所有的select的被选择项的文本内容相加,由于你只点击了第二个,因此你获得到的是""+"b2",因此te