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

一,什么是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。

举个例子 $.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({})用来循环数组和对像

<ul>

<li><div>Glen</div></li>

<li>Tane</li>

<li>Ralph</li>

</ul>

下面是循环对象

$("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' 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素

<div>

<ul>

<li>list item 1</li>    
    <li>list item 2       
        <ul>      
      <li>list item 2-a</li>      
      <li>list item 2-b</li>     
     </ul>  
      </li>     
   <li>list item 3</li> 
       <li>list item 4</li>  
  </ul>
</div>

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

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

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

//得到的结果是<p>Hello</p>

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

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

$().remove(),清空匹配元素中的内空,以及自身  <span><p>Hello</p></span>

$('p').empty() //得到的结果是<span><p></p></span> $('p').remove() //得到的结果是<span></span>

jQuery中容易让人困惑的东西的更多相关文章

  1. jQuery中的&& ||

    jQuery1.2.6 clean方法中有这么一段第一眼看去会让人晕掉的方法.完全不知其所言. “||, && 可以这样用?”,“这段东西最终返回的是个什么对象啊?” // Trim ...

  2. 小议jQuery中的事件

    学了jQuery这么长时间,到这里真的有一种柳暗花明又一村的感觉,在这里先表达一下自己学这一章节的happy心情吧(在严厉的金工实习老师眼皮底下偷偷学习,当然还有各种nerves~). 1加载DOM ...

  3. jQuery中的编程范式

    浏览器前端编程的面貌自2005年以来已经发生了深刻的变化,这并不简单的意味着出现了大量功能丰富的基础库,使得我们可以更加方便的编写业务代码,更重要的是我们看待前端技术的观念发生了重大转变,明确意识到了 ...

  4. jQuery 中的编程范式

    浏览器前端编程的面貌自2005年以来已经发生了深刻的变化,这并不简单的意味着出现了大量功能丰富的基础库,使得我们可以更加方便的编写业务代码,更重要的是我们看待前端技术的观念发生了重大转变,明确意识到了 ...

  5. jquery中的编程范式,即jquery的牛逼之处

    转自:http://www.iteye.com/topic/1119283 对jquery理解比较深,积累一下,整理了一下格式,就当练习一下 markdown 语法. 本文将结合jQuery源码的实现 ...

  6. 详解jQuery中 .bind() vs .live() vs .delegate() vs .on() 的区别

    转载自:http://zhuzhichao.com/2013/12/differences-between-jquery-bind-vs-live/ 我见过很多开发者很困惑关于jQuery中的.bin ...

  7. jQuery中attr和prop方法的区别

    jQuery中attr和prop方法的区别。 http://my.oschina.net/bosscheng/blog/125833 http://www.javascript100.com/?p=8 ...

  8. 大白话讲解Promise(三)搞懂jquery中的Promise

    前两篇我们讲了ES6中的Promise以及Promise/A+规范,在Promise的知识体系中,jquery当然是必不可少的一环,所以本篇就来讲讲jquery中的Promise,也就是我们所知道的D ...

  9. jQuery入门(4)jQuery中的Ajax应用

    jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...

随机推荐

  1. Git:文件操作和历史回退

    目录 创建仓库 创建文件/文件夹 修改文件/文件夹 回到修改前的版本 撤销修改 删除文件 工作区.暂存区.版本区 创建仓库 创建新文件夹:mkdir learngit 进入:cd learngit l ...

  2. 【hiho一下 第145周】智力竞赛

    [题目链接]:http://hihocoder.com/contest/hiho145/problem/1 [题意] [题解] 设f[i][j]表示做对i道题,做错j道题能够到达的最好状态是什么; 这 ...

  3. 【LeetCode Weekly Contest 26 Q4】Split Array with Equal Sum

    [题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/split-array-with-equal-sum/ ...

  4. CodeForces - 205B - Little Elephant and Sorting

    先上题目: Little Elephant and Sorting time limit per test 1 second memory limit per test 256 megabytes i ...

  5. html简单实现下拉菜单

    主要用到的知识ul和li标签 ul li 是一个组合:是无序列表标签,在实际中用的非常多,与之对应的是有序列表:ol lili是不能单独使用,必须在于ul之中的ul是块级元素,能直接定义宽高,而li是 ...

  6. 个人博客搭建----基于solo

    个人站地址是:http://www.iwillhaveacatoneday.cn 博客是基于开源的Java 博客系统--solo搭建的,这里记录下部署过程中遇到的一些主要问题 后台 solo后台采的是 ...

  7. Raphaeljs入门到精通(二)

    这节我们将介绍Raphaeljs中元素的属性和事件,案例还是以上一篇的代码展开 <!DOCTYPE html> <html xmlns="http://www.w3.org ...

  8. CSS制作响应式正方形及其应用

    CSS制作响应式正方形?什么鬼?干嘛用的?干嘛用的没人有每人的需求,本人也正好是由于公司正在做的业务须要,想做个照片展示的功能(当然得符合响应式了).而这个照片展示必须符合下面几点功能:1.用三张图片 ...

  9. 【SDOI2008】【BZOJ2049】Cave 洞穴勘測

    Description 辉辉热衷于洞穴勘測.某天,他依照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘測,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成.而且每条通道连接了恰好 ...

  10. [RK3288][Android6.0] U-boot 启动流程小结【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/52536093 Platform: RK3288OS: Android 6.0Version: ...