jquery 学习第二阶段总结

1,调用方法是要注意:

调用方法时要注意操作的是dom对象还是jquery对象。
普通的dom对象一般可以通过$()转换成jquery对象。
如:$(document.getElementById("msg"))则为jquery对象,可以使用jquery的方法。
由于jquery对象本身是一个集合(返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法)。
所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。
如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]这些都是dom对象,
其中$(exp).get(0) 等效于$(exp)[0]。
可以使用dom中的方法,但不能再使用Jquery的方法。

以下几种写法都是正确的:
$("#msg").html();
$("#msg")[0].innerHTML;(经常新手会 $("#msg")[0].html() ,当然这是错误的写法。)
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;
要注意,eq返回的是jquery对象,而get(n)和索引返回的是dom元素对象。


2 同一函数实现set和get:

Jquery中的很多方法都是如此,主要包括如下几个:
$("#msg").html(); //返回id为msg的元素节点的html内容。
$("#msg").html("<b>new content</b>");
//将“<b>new content</b>” 作为html串写入id为msg的元素节点内容中,页面显示粗体的new content

$("#msg").text(); //返回id为msg的元素节点的文本内容。
$("#msg").text("<b>new content</b>");
//将“<b>new content</b>” 作为普通文本串写入id为msg的元素节点内容中,页面显示<b>new content</b>

$("#msg").height(); //返回id为msg的元素的高度
$("#msg").height("300"); //将id为msg的元素的高度设为300
$("#msg").width(); //返回id为msg的元素的宽度
$("#msg").width("300"); //将id为msg的元素的宽度设为300

$("input").val("); //返回表单输入框的value值
$("input").val("test"); //将表单输入框的value值设为test

$("#msg").click(); //触发id为msg的元素的单击事件
$("#msg").click(fn); //为id为msg的元素单击事件添加函数
同样blur,focus,select,submit事件都可以有着两种调用方法

$("#msg").css("background"); //返回元素的背景颜色
$("#msg").css("background","#ccc") //设定元素背景为灰色
$("#msg").css({ color: "red", background: "blue" });//以名值对的形式设定样式

$("p").bind("click", function(){alert($(this).text());}); //为每个p元素添加单击事件
$("p").unbind(); //删除所有p元素上的所有事件
$("p").unbind("click") //删除所有p元素上的单击事件


3 集合处理功能

each:
$("tr").each(function(i){this.style.backgroundColor=['#ccc','#fff'][i%2]})
//实现表格的隔行换色效果
$("p").click(function(i){this.style.color=['#f00','#0f0','#00f'][i]})
//为三个不同的p元素单击事件分别设定不同的处理

4.数组
eg:
<SCRIPT LANGUAGE="JavaScript">
<!--
$(function(){
$("tr").each(function(i){ this.style.backgroundColor = ['#ccc','#fff'][i%2] })
//$("tr:not(:first)")
//$("tr:even").each(function(){ this.style.backgroundColor = '#ccc' }) //当然even能实现
})
//-->
</SCRIPT>



$(function(){
$("tr").each(function(i){ this.style.backgroundColor = ['#ccc','#fff'][i%2] })
})

['#ccc','#fff'][i%2] //就这里这个。当然可以用tr:even 。

代码的过程是 对i%2取余数,要么为0要么为1,
所以 要么是['#ccc','#fff'][0] 要么是 ['#ccc','#fff'][1] ,
所以要么是#ccc,要么是#fff.

javascript数组可以这么定义 var array =['arr1','arr2'];
['arr1','arr2'][0],['arr1','arr2'][1],这样写也是可以的。
jquery并没有对js的这个封装,也没有必要封装。


5.jQuery 的冲突问题
很多时候我们自己定义了$(id)方法来获取一个元素,或者其他的一些js类库如prototype也都定义了$方法,如果同时把这些内容放在一起就会引起变量方法定义冲突,Jquery对此专门提供了方法用于解决此问题。
  使用jquery中的jQuery.noConflict();方法即可把变量$的控制权让渡给第一个实现它的那个库或之前自定义的$方法。之后应用Jquery的时候只要将所有的$换成jQuery即可,
如原来引用对象方法$("#msg")改为jQuery("#msg")。
如:
jQuery.noConflict();
// 开始使用jQuery
jQuery("div p").hide();


// 使用其他库的 $()
$("content").style.display = 'none';


reference: google baidu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值