JQuery 选择器
1.1基础过滤选择器
举例说明
<scripttype="text/javascript">
$(document).ready(function(){
//选择 id为 one 的元素
$('#btn1').click(function(){
$('#one').css("background","#bfa");
});
//选择 class 为 mini 的所有元素
$('#btn2').click(function(){
$('.mini').css("background","#bfa");
});
//选择 元素名是 div 的所有元素
$('#btn3').click(function(){
$('div').css("background","#bfa");
});
//选择 所有的元素
$('#btn4').click(function(){
$('*').css("background","#bfa");
});
//选择 所有的span元素和id为two的div元素
$('#btn5').click(function(){
$('span,#two').css("background","#bfa");
});
});
</script>
1.2层次选择器
图示:
举例说明:
<scripttype="text/javascript">
$(document).ready(function(){
//选择 body内的所有div元素.
$('#btn1').click(function(){
$('bodydiv').css("background","#bbffaa");
})
//在body内的选择 元素名是div 的子元素.
$('#btn2').click(function(){
$('body >div').css("background","#bbffaa");
})
//选择 所有class为one 的下一个div元素.
$('#btn3').click(function(){
$('.one +div').css("background","#bbffaa");
})
//选择 id为two的元素后面的所有div兄弟元素.
$('#btn4').click(function(){
$('#two ~ div').css("background","#bbffaa");
})
});
</script>
特别说明
$('.one + div') =$(‘.one’).next(‘div’)
$('#two ~ div')=$(‘#two’).nextAll(‘div’)
另外:
$(‘#two’).siblings(‘div’) 同辈的div元素不分位置
$('#btn0').click(function(e) {
$('#two').siblings('div').css("background","#bbffaa");
});
1.3 过滤选择器
1.3.1基本过滤选择器
图示:
举例说明:
<scripttype="text/javascript">
$(document).ready(function(){
//选择第一个div元素.
$('#btn1').click(function(){
$('div:first').css("background","#bfa");
})
//选择最后一个div元素.
$('#btn2').click(function(){
$('div:last').css("background","#bfa");
})
//选择class不为one的 所有div元素.
$('#btn3').click(function(){
$('div:not(.one)').css("background","#bfa");
})
//选择 索引值为偶数 的div元素。
$('#btn4').click(function(){
$('div:even').css("background","#bfa");
})
//选择 索引值为奇数 的div元素。
$('#btn5').click(function(){
$('div:odd').css("background","#bfa");
})
//选择 索引等于 3 的元素
$('#btn6').click(function(){
$('div:eq(3)').css("background","#bfa");
})
//选择 索引大于 3 的元素
$('#btn7').click(function(){
$('div:gt(3)').css("background","#bfa");
})
//选择 索引小于 3 的元素
$('#btn8').click(function(){
$('div:lt(3)').css("background","#bfa");
})
//选择 所有的标题元素.比如h1, h2, h3等等...
$('#btn9').click(function(){
$(':header').css("background","#bfa");
})
//选择 当前正在执行动画的所有元素.
$('#btn10').click(function(){
$(':animated').css("background","#bfa");
});
//选择 当前获取焦点的所有元素.
$('#btn11').click(function(){
$(':focus').css("background","#bfa");
});
});
</script>
1.3.2内容过滤选择器
图示:
举例说明
<script type="text/javascript">
$(document).ready(function(){
//选取含有文本"di"的div元素.
$('#btn1').click(function(){
$('div:contains(di)').css("background","#bbffaa");
})
//选取不包含子元素(或者文本元素)的div空元素.
$('#btn2').click(function(){
$('div:empty').css("background","#bbffaa");
})
//选取含有class为mini元素 的div元素.
$('#btn3').click(function(){
$("div:has('.mini')").css("background","#bbffaa");
})
//选取含有子元素(或者文本元素)的div元素.
$('#btn4').click(function(){
$('div:parent').css("background","#bbffaa");
})
});
</script>
1.3.3可见性过滤选择器
图示:
举例说明
<scripttype="text/javascript">
$(document).ready(function(){
$('#reset').click(function(){
window.location.reload();
})
//给id为mover的元素添加动画.
function animateIt() {
$("#mover").slideToggle("slow", animateIt);
}
animateIt();
//选取所有不可见的元素.包括<inputtype="hidden"/>.
$('#btn_hidden').click(function(){
alert( "不可见的元素有:"+$('body:hidden').length +"个!\n"+
"其中不可见的div元素有:"+$('div:hidden').length+"个!\n"+
"其中文本隐藏域有:"+$('input:hidden').length+"个!");
$('div:hidden').show(3000).css("background","#bbffaa");
})
//选取所有可见的元素.
$('#btn_visible').click(function(){
$('div:visible').css("background","#FF6500");
})
});
</script>
特别说明
在可见性选择器中,需要注意选择器:hidden,它不仅包含样式属性display为“none”元素,也包括文本隐藏域(< inputtype=”hidden”>)和visibility:hidden之类的元素
1.3.4属性过滤选择器
图示:
举例说明
<scripttype="text/javascript">
$(document).ready(function(){
//选取含有 属性title 的div元素.
$('#btn1').click(function(){
$('div[title]').css("background","#bbffaa");
})
//选取 属性title值等于 test 的div元素.
$('#btn2').click(function(){
$('div[title=test]').css("background","#bbffaa");
})
//选取 属性title值不等于 test 的div元素.
$('#btn3').click(function(){
$('div[title!=test]').css("background","#bbffaa");
})
//选取 属性title值 以 te 开始 的div元素.
$('#btn4').click(function(){
$('div[title^=te]').css("background","#bbffaa");
})
//选取 属性title值 以 est 结束 的div元素.
$('#btn5').click(function(){
$("div[title$=est]").css("background","#bbffaa");
})
//选取 属性title值 含有 es 的div元素.
$('#btn6').click(function(){
$("div[title*=es]").css("background","#bbffaa");
})
//组合属性选择器,首先选取有属性id的div元素,然后在结果中 选取属性title值 含有 es 的元素.
$('#btn7').click(function(){
$("div[id][title*=es]").css("background","#bbffaa");
})
});
</script>
补充
<scripttype="text/javascript">
$(document).ready(function(){
//选取 属性title值 以 en 开始 的div元素.
$('#btn1').click(function(){
$('div[title^="en"]').css("background","#bbffaa");
})
//选取 属性title值 含有 en 的div元素.
$('#btn2').click(function(){
$('div[title*="en"]').css("background","#bbffaa");
})
//选取 属性title等于en或以en为前缀(该字符串后跟一个连字符'-')的元素
$('#btn3').click(function(){
$('div[title|="en"]').css("background","#bbffaa");
})
//选取 属性title用空格分隔的值中包含字符uk的元素.
$('#btn4').click(function(){
$('div[title~="uk"]').css("background","#bbffaa");
})
});
</script>
1.3.5子元素过滤选择器
图示:
举例说明
<scripttype="text/javascript">
$(document).ready(function(){
//选取每个父元素下的第2个子元素
$('#btn1').click(function(){
$('div.one:nth-child(2)').css("background","#bbffaa");
})
//选取每个父元素下的第一个子元素
$('#btn2').click(function(){
$('div.one:first-child').css("background","#bbffaa");
})
//选取每个父元素下的最后一个子元素
$('#btn3').click(function(){
$('div.one:last-child').css("background","#bbffaa");
})
//如果父元素下的仅仅只有一个子元素,那么选中这个子元素
$('#btn4').click(function(){
$('div.one:only-child').css("background","#bbffaa");
})
});
</script>
1.3.6表单对象属性过滤选择器
图示:
举例说明
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
//重置表单元素
$(":reset").click(function(){
setTimeout(function() {
countChecked();
$("select").change();
},0);
});
//对表单内 可用input 赋值操作.
$('#btn1').click(function(){
$("#form1input:enabled").val("这里变化了!");
return false;
})
//对表单内 不可用input 赋值操作.
$('#btn2').click(function(){
$("#form1input:disabled").val("这里变化了!");
return false;
})
//使用:checked选择器,来操作多选框.
$(":checkbox").click(countChecked);
function countChecked() {
var n = $("input:checked").length;
$("div").eq(0).html("<strong>有"+n+"个被选中!</strong>");
}
countChecked();//进入页面就调用.
//使用:selected选择器,来操作下拉列表.
$("select").change(function () {
var str = "";
$("select :selected").each(function() {
str+= $(this).text() + ",";
});
$("div").eq(1).html("<strong>你选中的是:"+str+"</strong>");
}).trigger('change');
//trigger('change') 在这里的意思是:
//select加载后,马上执行onchange.
//也可以用.change()代替.
});
//]]>
</script>
1.4表单选择器
图示:
举例说明
<body>
<form id="form1" action="#">
<input type="button"value="Button"/><br/>
<input type="checkbox"name="c"/>1<input type="checkbox"name="c"/>2<input type="checkbox"name="c"/>3<br/>
<input type="file"/><br/>
<input type="hidden"/><div style="display:none">test</div><br/>
<input type="image"/><br/>
<input type="password"/><br/>
<input type="radio"name="a"/>1<input type="radio"name="a"/>2<br/>
<input type="reset"/><br/>
<input type="submit"value="提交"/><br/>
<input type="text"/><br/>
<select><option>Option</option></select><br/>
<textarea rows="5"cols="20"></textarea><br/>
<button>Button</button><br/>
</form>
<div></div>
</body>
$("form :input") 返回form中的所有表单对象,包括textarea、select、button等
$("form input")返回form中的所有input标签对象
form input 是属于层级选择器(将每一个选择器匹配到的元素合并后一起返回)
form :input是属于表单选择器(匹配所有<input>、<textarea>、<select>、<button>元素)