设为首页 加入收藏

TOP

jQuery中容易让人困惑的东西
2015-07-16 12:56:56 来源: 作者: 【 】 浏览:4
Tags:jQuery 容易 困惑 东西

前言:jQuery很灵活,太灵活了,可以说是他一个优点,也是他一个缺点,达到一种效果,十个人也许会用十种不同的方法来实现这个过程,结果一样,过程不一样,这到底是好,还是坏呢。


一,什么是jQuery


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


二,学习和使用jquery的困惑


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


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


举个例子 $.fn.extend({?


?checkname: function() {?


? ? ? ? ? if($.trim($(this).val()) != ""){? ?


? ? ? ? ? ? return true;? ? ? ?


? ? ? ? }else{? ? ?


? ? ? ? return false;? ? ? ? ?


? }? ?


? }? ?


?});? ?


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


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


$.extend({? ?
? checkname: function(name) {? ?
? ? ? ? if($.trim(name!= ""){? ?
? ? ? ? ? ? return true;? ? ? ? ? ?
? ? }else{? ? ? ? ?
? ? return false;? ? ?
? ? ? }? ?
? }?
? });


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


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


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


    ? ? ?


    ? ?

  • Glen
  • ? ?


    ? ?

  • Tane
  • ?


    ? ?

  • Ralph

  • ?

?


下面是循环对象


$("ul li").each(function(k,v){? ?


?alert("key="+k+",value="+$(v).html());?


? });?


? );


下面是循环数组


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


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


?注意: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' 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素



    ?


    ?

  • list item 1
  • ? ?
    ? ?
  • list item 2? ? ? ?
    ? ? ? ?
      ? ? ?
      ? ? ?
    • list item 2-a
    • ? ? ?
      ? ? ?
    • list item 2-b
    • ? ? ?
      ? ?
    ?
    ? ? ?
  • ? ? ?
    ?
  • list item 3
  • ?
    ? ? ?
  • list item 4
  • ?
    ?


$("ul li:first").css('color','red');? ? ? ? //只匹配第一次,


? $("ul li:first-child").css('color','red');? ? //匹配每个符合要求的对象?


$().html()和$().text()? $().html()取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。? $().text()结果是由所有匹配元素包含的文本内容组合起来的文本。这个方法对HTML和XML文档都有效。?

Hello

? $('span').html();? ?


//得到的结果是

Hello


?$('span').texxt();? ? //得到的结果是Hello?


?


6), $().empty()和$().remove()? $().empty() 清空匹配元素中的内空,但不清空自身、


?$().remove(),清空匹配元素中的内空,以及自身?

Hello


$('p').empty() //得到的结果是

$('p').remove() //得到的结果是


------------------------------------------分割线------------------------------------------


--------------------------------------分割线 --------------------------------------


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇jQuery的基本概念与高级编程 下一篇C++String中用于查找的find系列函..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: