jquery是一个非常优秀的js框架,相信大部分人都用过,也都非常熟悉它的应用,用起来也非常简单,基本的操作也都不用说了。这里不在罗列jquery的api,总结下需要注意的点,都是平时容易犯错误的地方,分享下,感觉还有比较有价值的,具体内容如下:

一、ajax相关:

$.ajax({
        type : "post",
        url : "XXX.action",
      //data : 'name=John&location=china'
        data : {name:John, location:china},
        dataType : "json",
        async : false,
        success : function(data) {

        }
  });

1.data两种参数的用法区别
     ①一种时参数值为特殊情况时(值本身含有字符'&'): 例如 name=John&John2, data就变成了'name=John&John2&location=china' ,这时数据传到后台可能会得到不可预知的结果。
     ②正常情况下,也就是参数的值不带有特殊字符 ‘&’,有时也会出现“参数接收不到或不完整”的情况,具体原因我也清楚,这个确实亲身经历过,代码什么的都没有问题,到了后台有个参数就是传不过去,所以结论就是使用第二种写法较好:data : {name:John, location:china},从来没有出现过参数丢失的情况,而且容错性也强。

2.async同步方式:true or false ?
    ①如果需要等待ajax的执行结果,用false,否则永远得不到正确的结果。原因很简单,如果不用false,代码会直接往下执行,这时ajax的值还没返回过来,程序没有按照想象的顺序执行,结果也就可想而知了。

②如果不需要等待ajax的执行结果最好用true,因为采用“同步的方式”(async=false)时页面会处于“假死”状态,用户看起来就是“卡住”了, 特别是假死次数太多时,体验不佳(ajax不要滥用,能在后台做的工作就在后台做,特别是一些初始化的工作)。

3.dataType:一般我们的返回值类型都是“json”,这个一定要写,并且写正确,(即便后台指定了HTTP包MIME类型) 曾经犯过一个错误,将返回值错写成“html”,结果总是取不到自己想要的值,最后将返回值一打印,发现是包含 HTTP信息的一大堆信息,好像就是一个页面HTML代码,这时想到(ajax本就是一个HTTP请求)。

4.总结,要养成良好习惯,不管你的ajax多么简单,这个5个最基本的参数都带上,并且根据自己的情况将参数值写正确。
         
二、小知识:
   1.jquery选择器返回的永远是个数组,也正因为如此,通过id选择的元素不存在也不会报错,但我们不能因为不报错写代码时就可以随意写,如果不确定元素是否存在,取时最好还是要做“非空”判断,示例:

     if ($("#btn1").length > 0) {
         //主体代码
     }

2.页面上有多个id或者name一样的元素时,如果取?一般是通过“相对路径”来取,因为如果要取值,总要由一些“事件”触发,如果点击了某个按钮,那么就以此按钮为出发点往上找或者往下找,常用的函数:
     parent : 取父节点元素
     child    : 取子节点元素
     prev    : 取兄弟节点(同级)的前一个
     next    : 取兄弟节点(同级)的前一个
     一个例子:购物车展示页面,一个table里很多组商品,每组可以单独结算,也就是都有结算“按钮”,而本组商品的某个位置度有个隐藏的元素,他们的name是一样的,这时可以这么取值:

$(this).parents("tr").prev().find("td").find("input[name='activecode']").val();

意思为从结算按钮前一行的某列中找到名字为activecode的元素的值,这里的“td”如果能确定的话后面还可以加上eq(索引值)。

3.取没有id的元素(有时候有些元素是没有id的,往往都是些list,如果自己的不好加或者不想加id,又或者不能加) 我遇到过这样一种情况,页面上有一个li集合,他们的值都来自定义好的集合A,手里有些数据A1也来自A,A1中的数据也能在页面li中出现,也可能没有。需求是A1中的值,li集合中也同时出现的做些样式调整,li中的任何元素都没有id,只有外面的ul有id。在这种“极端条件下”,还有
最后的办法,就是循环li,然后通过值相等判断。(也就说只要遇到取值,就要有循环,代码写出来非常臃肿,不过真没有办法了,也只能这样)

     $(li集合).each(function(){
         //
         主体代码
     });

jquery使用注意点以及建议的更多相关文章

  1. Jquery学习笔记--性能优化建议

    一.选择器性能优化建议 1. 总是从#id选择器来继承 这是jQuery选择器的一条黄金法则.jQuery选择一个元素最快的方法就是用ID来选择了. 1 $('#content').hide(); 或 ...

  2. jQuery:jQuery性能优化28条建议

    http://www.xue5.com/WebDev/jQuery/671700.html 直在寻找有关jQuery性能优化方面的小窍门,能让我那臃肿的动态网页应用变得轻便些.找了很多文章后,我决定将 ...

  3. 手把手带你快速入门jQuery(视频|资料,建议收藏!)

    jQuery是什么? jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架). jQuery设计的宗旨是 ...

  4. 10条建议帮助你创建更好的jQuery插件

    本文总结了帮助你创建更好jQuery插件的10条建议.分享给大家供大家参考.具体说明如下: 在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式.这样我就 ...

  5. jQuery对象和DOM对象的区别

    jQuery对象和DOM对象使用说明,需要的朋友可以参考下.1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象,因此需要重点了解jQuery ...

  6. JavaScript和JQuery好书推荐

    其实无论你是php/python/java还是c/c++,只会自己那点知识是无法独立完成一个站点的建设的! 如果你因自己能力不足拒绝过几次亲友的建站请求,或者因合作中不了解前端是什么东西而失去过几次创 ...

  7. DOM对象与jquery对象有什么不同

    jQuery对象和DOM对象使用说明,需要的朋友可以参考下.1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象,因此需要重点了解jQuery ...

  8. Jquery day01

    day01: 基础--选择器.属性和CSS.文档处理 day02: 高级--筛选.事件.效果.ajax jQuery介绍 JS类库 JavaScript 库封装了很多预定义的对象和实用函数.能帮助使用 ...

  9. DOM对象与jquery对象的区别

    jQuery对象和DOM对象使用说明,需要的朋友可以参考下. 1.jQuery对象和DOM对象 第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象,因此需要重点了解jQue ...

随机推荐

  1. VS2015 自动添加头部注释

    让VS自动生成类的头部注释,只需修改两个文集即可,一下两个路径下个有一个 Class.cs文件 D:\Program Files (x86)\Microsoft Visual Studio 14.0\ ...

  2. TextView链接点击和长按冲突

    1.重写 import android.text.Layout; import android.text.Selection; import android.text.Spannable; impor ...

  3. C# 读本地INI文件方法

    [DllImport("kernel32")]//加载dll private static extern int GetPrivateProfileString(string se ...

  4. 同步、更新、下载Android Source & SDK from 国内镜像站(转载)

    同步.更新.下载Android Source & SDK from 国内镜像站 转自: 同步.更新.下载Android Source & SDK from 国内镜像站 Download ...

  5. Leetcode Unique Paths II

    Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How m ...

  6. HDU 3038 How Many Answers Are Wrong(种类并查集)

    题目链接 食物链类似的题,主要是在于转化,a-b的和为s,转换为b比a-1大s.然后并查集存 此节点到根的差. 假如x的根为a,y的根为b: b - y = rank[y] a - x = rank[ ...

  7. sqlserver跨服务器数据库sql语句

    1.启用Ad Hoc Distributed Queries:exec sp_configure 'show advanced options',1reconfigureexec sp_configu ...

  8. [LintCode] Delete Node in the Middle of Singly Linked List 在单链表的中间删除节点

    Implement an algorithm to delete a node in the middle of a singly linked list, given only access to ...

  9. Android-studio开发 快捷键

    这会儿正在学android开发,使用的是Android-studio 记录一下开发工具默认的 快捷键

  10. 【iCore3 双核心板_FPGA】实验二十六:SDRAM读写测试实验

    实验指导书及代码包下载: http://pan.baidu.com/s/1c1VRibY iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...