js点滴知识(1) -- 获取DOM对象和编码

  在今天的工作中发现了一些小的问题,在网上查了一下,才知道自己的js才是冰山一角,以后要虚心向他人学习,要虚怀若谷.

  发现一:js获取DOM对象与jquery的区别

  先前总以为,二者是一样的,最近才知道,二者是不同的:

  前者使用var jsTab = document.getElementById("tab");//其中tab为所选择dom对象id的属性值.

  后者var jqTab = $("#tab");//不仅需要id属性值,还需要加上#,这是jquery所规定的.

  用原生js获取的是DOM对象,而用jquery是对DOM对象包装后的对象.那么jquery的对象如何转换成DOM对象呢?很简单 jqTab.get(0)即可,即获取第一个数组元素即可,虽然jquery对象并不是数组,不过这里可以理解为数组.反过来呢?jqTab=$(jsTab).很简单吧,各位.

  发现二:encodeURIComponent与encodeURI的区别

  在向后台传递参数时,需要对中文进行编码时需要用到js中的这两个函数,那么这两者有神马区别呢?从网上查到的结果是这样的:

 encodeURIComponent(params)该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
 encodeURI(params)该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

  以上出自w3cschool之encodeURIComponent,w3cschool之encodeURI.也就是说,对于;/?:@&=+$,#这些也需要编码时就需要前者了.那么两者用途在何处?前者用于POST传递参数时,后者用于url跳转.个人理解,不正确请各位赐教.

上一篇:【Javascript Demo】JS获取当前对象大小以及屏幕分辨率等


下一篇:js动态获取当前系统时间+js字符串转换为date日期对象