认识JQuery:
1、window.onload与$(document).ready()的区别
window.onload |
$(document).ready() |
|
执行时机 |
必须等待网页中的所有内容加载完毕后才能执行 |
网页中所有DOM结构绘制完毕后就执行,可能DOM元素关联的东西并没有完全加载完 |
编写个数 |
不能同时编写多个方法 |
可以同时编写多个 |
简化写法 |
$(document).ready(function(){ //… }) |
2、jQuery对象以及DOM对象
jQuery:
$(”#foo”).html( ); //获取id为foo的元素内的html代码,html( )是jQuery里的方法
在DOM中,
document.getElementById("foo").innerHTML;
3、
获取jQuery对象 : var $variable = jQuery对象
获取DOM对象 : var variable = DOM对象
4、jQuery对象不能使用DOM中的方法,要将转为DOM对象才可以使用 [index] , get(index)
jQuery是一个类似于数组的对象,可以通过[index]的方法得到相应的DOM对象
方法1:
var $cr = $("#cr") ; //jQuery对象
var cr = $cr[0]; //DOM对象
alert(cr.checked) //检测这个checkbox是否被选中
方法2:
var $cr = $("#cr"); //jQuery对象
var cr = $cr.get(0); //DOM对象
alert(cr.chencked);
5、DOM对象转化为jQuery对象:只要用$()将DOM对象包起来就可以得到一个jQuery对象
jQuery代码:
var cr = document.getElementById("cr"); //DOM对象
var $cr = $(cr) //jQuery对象
6、
$(document).ready(function(){
var $cr = $("#cr"); //jQuery对象
var cr = $cr[0]; //DOM对象
$cr.click(function(){
if(cr.checked){ //DOM判断
alert("感谢你的支持,你可以继续操作");
}
})
})
$(document).ready(function(){
var $cr = $("$cr"); // jQuery对象
$cr.click(function(){
if($cr.is(":checked")){ //jQuerry判断
alert("感谢你的支持,你可以继续操作");
}
})
})
jQuery选择器:
1、<p class="demo"> aaaa </p> ----在jQuery中获取到节点:$(".demo")
2、JS中:
<div>test</div>
<script type="text/javascript">
document.getElementById("tt").style.color = "red";
------会报错,在文档中没有id=tt的节点
</script>
<div>test</div>
<script type="text/javascript">
if(document.getElementById("tt")){
document.getElementById("tt").style.color = "red";
------不会报错,在文档中即使没有id=tt的节点
}
</script>
jQuery中:
<div>test</div>
<script type="text/javascript">
$('#tt').css("color","red");
-----在jQuery中是不需要判断该节点是否存在的,
</script>
$('#tt')获取的永远是对象,即使网页中没有此元素
3、jQuery中检测某个元素是否存在的时候,不能使用以下代码,应该利用对象的长度或者转化为DOM对象
if( $('#tt') ){
----错误的
}
if( $('#tt').length > 0){
//do Something
}
if( $('#tt')[0] ){
//do Something
}
4、
$("div,span,p.myClass")選取所有的<div>,<span>,以及class為myClass的<P>標籤的一組標籤 ----集合元素
基本选择器:
$("#one").css("background","#bbffaa");
$(".mini").css("background","#bbffaa");
$("div").css("background","#bbffaa");
$("*").css("background","#bbffaa");
$("span, #two").css("background","#bbffaa");
层次选择器:
$("div span")选取<div>里的所有span元素
$("div > span")选取<div>元素下,元素名为<span>的子元素
$(".one + div")选取class为one的下一个<div>的同辈元素
$("#two ~div")选取id为two的元素后面的所有<div>同辈元素
过滤选择器:
$("div :first")选取所有<div>元素后面的第一个<div>元素
$("div :last")选取所有<div>元素后面的最后一个<div>元素
$("input :not(.myClass)")选取class不是myClass的<input>元素
$("input :even")选取索引是偶数的<input>元素
$("input :odd")选取索引是奇数的<input>元素
$("input :eq(1)")选取索引等于1的<input>元素
$("input :gt(1)")选取索引大于1的<input>元素
$("input :lt(1)")选取索引小于1的<input>元素
$("div :animated")选取正在执行动画的<div>元素
$(":focus")选取当前获取焦点的元素
内容过滤选择器:
$("div :contains('我')")选取含有文本 “我”的<div>元素
$("div :empty")选取不包含子元素(包括文本元素)的<div>空元素
$("div :has(p)")选取含有<p元素的<div>元素
$("div :parent")选取拥有子元素(包括文本元素)的<div>元素
可见性过滤选择器:
$(":hidden")选取所有的不可见元素,包含<input type="hidden" />,<div style="display:none;">和<div style="visibility:hidden;">等元素
$("input :hidden")
$("div :visible") 选取所有的可见的div元素
属性过滤选择器:
$("div[id]") 选取拥有属性id的元素
$("div[title=test]") 选取title为test的div元素
$("div[title != test]") 选取title不等于test的div元素,没有改属性的也会被选中
$("div[title ^= test]") 选取title属性以“test”开始的div元素
$("div[title $= test]") 选取title属性以“test”结束的div元素
$("div[title *= test]") 选取title属性含有“test”的div元素
$('div[title |= "en"]') 选取title属性等于en获取以en为前缀(- 分隔)的元素
$("div[title ~= "uk"]") 选取title属性用空格分隔的值中包含字符uk的元素
$("div[id][title $= 'test']") 选取拥有属性id,并且属性title以“test”结束的div元素
子元素过滤选择器:
:nth-child(index/even/add) :选取每个父元素下的第index个子元素或者奇偶元素,index从1开始,为每一个符合条件的父元素匹配子元素
:first-child :选取每个父元素的第一个子元素
:last-child :选取每个父元素的最后一个子元素
:only-child 如果某个元素是它父元素中唯一的子元素,则会被匹配
表单对象属性过滤器:
:enabled :选取所有可用元素 ---disabled
:disabled :选取所有不可用的元素 ---disabled
:checked :选取所有被选中的元素
:selected :选取所有被选中的选项元素(下拉列表) $("select option:selected")选取所有被选中的选项元素
获取内容的是text()方法
表单选择器:
:input
:text
:password
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden
5、
可以使用next()方法代替$('prev + next')选择器
$(".one + div") 等价于 $(".one").next("div")
可以使用nextAll()方法代替$('prev ~sibling')
$("#prev ~div") 等价于 $("#prev").nextAll("div")
sibling()与$('prev ~sibling')选择器进行比较,sibling()与位置无关
//选取#prev之后的所有同辈div元素
$("#prev ~div").css("background","#bbffaa");
//同上
$("#prev").nextAll("div").css("background","#bbffaa");
//选取##prev的所有同辈div元素,与前后位置无关
$("#prev").sibling("div").css("background","#bbffaa");
6、选择器中含有空格,多一个空格或少一个空格也许会得到截然不同的结果
//选取class为“test”的元素里面的隐藏元素
var $a = $('.test :hidden'); ---带空格的 ---长度为4
//选取掩藏的class为“test”的元素
var $b = $('.test:hidden'); ---不带空格的 ---长度为3