一、认识
//等待dom元素加载完毕.
$(document).ready(function(){
alert("Hello World!");
});
二、jQuery对象与DOM对象是不一样的
普通处理,通过标准JavaScript处理:
<!-- 使用JS原生语法 -->
<script type="text/javascript">
window.onload = function(){
// 通过原生JS语法获取id为imooc1的元素p
var p = document.getElementById('imooc1');
// 将元素p在html中内容改变
p.innerHTML = 'P1:您好!通过慕课网学习jQuery才是最佳的途径';
// 将元素p的内容颜色改为红色
p.style.color = 'red';
}
</script>
jQuery的处理:
<!-- 使用jQuery语法 -->
<script type="text/javascript">
$(document).ready(function() {
/**
* 通过jQuery语法获取id为imooc2的元素获得一个jQuery对象
* 调用该对象的html()方法进行更改内容
* 调用该对象的css()方法进行更改颜色样式
*/
var $p = $('#imooc2');
$p.html('P2:您好!通过慕课网学习jQuery才是最佳的途径').css('color','red');
});
</script>
通过标准的JavaScript操作DOM与jQuyer操作DOM的对比,我们不难发现:
- 通过jQuery方法包装后的对象,是一个类数组对象。它与DOM对象完全不同,唯一相似的是它们都能操作DOM。
- 通过jQuery处理DOM的操作,可以让开发者更专注业务逻辑的开发,而不需要我们具体知道哪个DOM节点有那些方法,也不需要关心不同浏览器的兼容性问题,我们通过jQuery提供的API进行开发,代码也会更加精短。
三、jQuery对象转化成DOM对象
注意:
【1】jQuery对象是一个类似数组的对象,可以通过[index]的方法得到相应的DOM对象.
【2】通过get(index)方法得到相应的DOM对象.
<div>元素一</div>
<div>元素二</div>
<div>元素三</div>
<script type="text/javascript">
$(function(){
var $div = $('div');
var div = $div[0];
var div2 = $div.get(2);
div.style.color = 'red'; //第一种方法
div2.style.color = 'blue'; //第二种方法
});
</script>
实际案例1:判断复选框是否被选中【DOM对象】
<input type="checkbox" name="" id="argee"><label>argee</label>
<script type="text/javascript">
$(function(){
var $div = $('#argee'); //Jquery 对象
var inputDom = $div[0]; //DOM 对象
$div.click(function(){
if(inputDom.checked){
alert('this is checked');
}
});
});
</script>
实际案例2:判断复选框是否被选中【jQuery对象】
<script type="text/javascript">
$(function(){
var $div = $('#argee'); //Jquery 对象
$div.click(function(){
if($div.is(':checked')){ // 返回布尔值boolean
alert('this is checked');
}
});
});
</script>
四、DOM对象转化成jQuery对象
如果传递给$(DOM)函数的参数是一个DOM对象,jQuery方法会把这个DOM对象给包装成一个新的jQuery对象
通过$(dom)方法将普通的dom对象加工成jQuery对象之后,我们就可以调用jQuery的方法了:
<script type="text/javascript">
var div = document.getElementsByTagName('div'); //dom对象
//将dom节点div转化为$div的jquery对象
// $div =
var $first = $div.first(); //找到第一个div元素
$first.css('color', 'red'); //给第一个元素设置颜色
</script>