jQuery extend each contains has first

本文介绍了jQuery框架的基本概念,对比了$.fn.extend与$.extend的区别,并详细解析了$.each与$().each的不同应用场景。此外,还探讨了$:contains与$:has、$:first与$:first-child等选择器的区别及$().html与$().text、$().empty与$().remove等方法的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,什么是jquery

jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。说白了,jquery就是javascript。只不过按照人的习惯思维把它封装了一个比较强大的框架。还有一点jquery能够把html和javascript尽量分离,这也是我愿意用jquery的一个重要原因。jqueryt很灵活,太灵活了,可以说是他一个优点,也是他一个缺点,达到一种效果,十个人也许会用十种不同的方法来实现这个过程,结果一样,过程不一样,这到底是好,还是坏呢。就各说各的理了。

二,学习和使用jquery的困惑

1)$.fn.extend({})和$.extend({})

$.fn.extend是扩展jQuery元素集来提供新的方法(通常用来制作插件)。解释一下,就是通过$.fn.extend产生的jquery方法在调用jquery时,不会包括括在jquery自身的对象中,它是扩展插件的形势,继承的。你可以把它理解为php中的extend。举个例子

  1. $.fn.extend({
  2. checkname:function(){
  3. if($.trim($(this).val())!=""){
  4. returntrue;
  5. }else{
  6. returnfalse;
  7. }
  8. }
  9. });

调用时 $("input.name").checkname();

$.extend是扩展jQuery对象本身。解释一下,就是说通过$.extend产生的jquery方法,在调用jquery时,会包括在jquery自身的对象中。说白了,就是在jquery对象中添加方法,例如

  1. $.extend({
  2. checkname:function(name){
  3. if($.trim(name!=""){
  4. returntrue;
  5. }else{
  6. returnfalse;
  7. }
  8. }
  9. });

调用时 $.checkname($("input.name").val());

2)$().each({})和$.each({})

$().each({})用来循环数组和对像

  1. <ul>
  2. <li><div>Glen</div></li>
  3. <li>Tane</li>
  4. <li>Ralph</li>
  5. </ul>

下面是循环对象

  1. $("ulli").each(function(k,v){
  2. alert("key="+k+",value="+$(v).html());
  3. });
  4. );

下面是循环数组

  1. array=[0,1,2];
  2. $(array).each(function(k,v){
  3. alert("key="+k+",value="+v);
  4. });

$.each({})可用来循环所有数组和对象,个人觉得他们二个没什么差别,除了写法不一样外

下面是循环数组

  1. array=[0,1,2];
  2. $.each(array,function(k,v){
  3. alert("key="+k+",value="+v);
  4. });

下面是循环对象

  1. $.each($("ulli"),function(k,v){
  2. alert("key="+k+",value="+$(v).html());
  3. });

注意:function(k)这里k是下标,function(k,v)这是k还是下标,v不一定,有可能是数组里面的一个值,也有可能是一个对象,如果是对象时,如果参数不写出来,默认情况是this

3),$(" :contains()")和$(" :has()")

$(" :contains()")匹配包含给定文本的元素,contains里面包括的是文本内空

$("li:contains('Ra')").css('color','red');

$(" :has()")匹配含有选择器所匹配的元素的元素,has里面包话的是一个标签

$("li:has(div)").css('color','red');

4),$(" :first")和$(" :first-child")

$(" :first")匹配找到的第一个元素

$(" :first-child")匹配第一个子元素,':first' 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素
  1. <div><ul>
  2. <li>listitem1</li>
  3. <li>listitem2
  4. <ul>
  5. <li>listitem2-a</li>
  6. <li>listitem2-b</li>
  7. </ul>
  8. </li>
  9. <li>listitem3</li>
  10. <li>listitem4</li>
  11. </ul></div>
  1. $("ulli:first").css('color','red');//只匹配第一次,
  2. $("ulli:first-child").css('color','red');//匹配每个符合要求的对象
  3. 5),$().html()和$().text()
  4. $().html()取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。
  5. $().text()结果是由所有匹配元素包含的文本内容组合起来的文本。这个方法对HTML和XML文档都有效。
  6. <span><p>Hello</p></span>
  7. $('span').html();//得到的结果是<p>Hello</p>
  8. $('span').texxt();//得到的结果是Hello
  9. 6),$().empty()和$().remove()
  10. $().empty()清空匹配元素中的内空,但不清空自身、
  11. $().remove(),清空匹配元素中的内空,以及自身
  12. <span><p>Hello</p></span>
  13. $('p').empty()//得到的结果是<span><p></p></span>
  14. $('p').remove()//得到的结果是<span></span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值