选取子元素后代元素的时候,需要加一个空格
//选取class为one的div元素下的第2个子元素 $("div.one :nth-child(2)") //选取class为one的div父元素下的第一个子元素 $(".one :first-child") //下拉框被选择,如果不加空格,获取不到,选择的是select下面的option,是子元素 $("select selected")
$("#btn5").click(function(){ //实际被选择的不是 select, 而是 select 的 option 子节点 //所以要加一个 空格. //var len = $("select :selected").length //alert(len); //因为 $("select :selected") 选择的是一个数组 //当该数组中有多个元素时, 通过 .val() 方法就只能获取第一个被选择的值了. //alert($("select :selected").val()); //jQuery 对象遍历的方式使 each, 在 each 内部的 this 是正在 //得到的 DOM 对象, 而不是一个 jQuery 对象 $("select :selected").each(function(){ alert(this.value); }); });
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Untitled Document</title> <script type="text/javascript" src="scripts/jquery-1.7.2.js"></script> <script type="text/javascript"> $(function(){ //1. 为 #address 添加 focus(获取焦点), blur(失去焦点) 响应函数 $(":text").focus(function(){ //2. 当获取焦点时, 若 #address 中是默认值 //(defaultValue 属性, 该属性是 DOM 对象的属性), 就使其值置为 "" var val = $(this).val(); if(val == this.defaultValue){ $(this).val(""); } }).blur(function(){ //3. 失去焦点是, 若 #address 的值在去除前后空格后等于 "" //则为其恢复默认值. var val = this.value; if($.trim(val) == ""){ this.value = this.defaultValue; } }); //2. $(":button:eq(1)").click(function(){ $("#single").val("选择3号"); }); $(":button:eq(2)").click(function(){ $("#multiple").val(["选择2号", "选择4号"]); }); $(":button:eq(3)").click(function(){ $(":checkbox[name='c']").val(["check2", "check4"]); }); $(":button:eq(4)").click(function(){ //即便是为一组 radio 赋值, val 参数中也应该使用数组. //使用一个值不起作用。 $(":radio[name='r']").val(["radio2"]); }); $(":button:eq(5)").click(function(){ //val() 可以直接获取 select 的被选择的值. alert($("#single").val()); alert($("#multiple").val()); //val 不能直接获取 checkbox 被选择的值 //若直接获取, 只能得到第一个被选择的值. //因为 $(":checkbox[name='c']:checked") 得到的是一个 //数组. 而使用 val() 方法只能获取数组元素的第一个值 //若希望打印被选择的所有制, 需要使用 each 遍历. //alert($(":checkbox[name='c']:checked").val()); $(":checkbox[name='c']:checked").each(function(){ alert(this.value); }); //而 raido 被选择的只有一个, 所以可以直接使用 val() 方法. alert($(":radio[name='r']:checked").val()); }); }) </script> </head> <body> <input type="text" id="address" value="请输入邮箱地址"><br> <input type="text" id="password" value="请输入邮箱密码"><br> <input type="button" value="登录"> <br><br><br> <input type="button" value="使单选下拉框的'选择3号'被选中"/> <input type="button" value="使多选下拉框选中的'选择2号'和'选择4号'被选中"/><br> <input type="button" value="使多选框的'多选2'和'多选4'被选中"/> <input type="button" value="使单选框的'单选2'被选中"/><br> <input type="button" value="打印已经被选中的值"><br> <br/> <select id="single"> <option>选择1号</option> <option>选择2号</option> <option>选择3号</option> </select> <select id="multiple" multiple="multiple" style="height:120px;"> <option selected="selected">选择1号</option> <option>选择2号</option> <option>选择3号</option> <option>选择4号</option> <option selected="selected">选择5号</option> </select> <br/><br/> <input type="checkbox" name="c" value="check1"/> 多选1 <input type="checkbox" name="c" value="check2"/> 多选2 <input type="checkbox" name="c" value="check3"/> 多选3 <input type="checkbox" name="c" value="check4"/> 多选4 <br/> <input type="radio" name="r" value="radio1"/> 单选1 <input type="radio" name="r" value="radio2"/> 单选2 <input type="radio" name="r" value="radio3"/> 单选3 </body> </html>