1.dom元素不能使用jq的方法,反之亦然。
dom->jq $(dom)
jq->dom jq[index]或者jq.get(index);
2.jq size和length方法区别:
1)针对标签对象元素,比如数html页面有多少个段落元素<p></p>
那么此时的$("p").size() == $("p").length
2)计算一个字符串的长度或者计算一个数组元素的个数
那么此时只能用length而不能用size()
3. jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法。
jQuery.fn.extend(object);给jQuery对象添加方法。
4. .html(),.text(),.val()区别:
.html()用为读取和修改元素的HTML标签
.text()用来读取或修改元素的纯文本内容
.val()用来读取或修改表单元素的value值。
这三个方法功能上的对比
.html(),.text(),.val()三种方法都是用来读取选定元素的内容;
只不过.html()是用来读取元素的HTML内容(包括其Html标签)
.text()用来读取元素的纯文本内容,包括其后代元素,
.val()是用来读取表单元素的"value"值。
其中.html()和.text()方法不能使用在表单元素上,而.val()只能使用在表单元素上;
另外.html()方法使用在多个元素上时,只读取第一个元素;.val()方法和.html()相同,如果其应用在多个元素上时,只能读取第一个表单元素的"value"值,
但是.text()和他们不一样,如果.text()应用在多个元素上时,将会读取所有选中元素的文本内容。
.html(),.text(),.val()都可以使用回调函数的返回值来动态的改变多个元素的内容。
5.eq(index)与get(index)
前者返回jquery后者返回dom
6.window.onload() 和$().ready()
onload需要页面上所有的资源都加载上之后执行,而ready则是DOM文档树已经解析完成时,说ready比onload快最显著的是比如一个页面上有一个很大的图片,加载要好久,onload只有在图片加载完成之后执行,而ready不必等图片加载完成
在$(document).ready()执行时,整个DOM文档树已经解析完成,即各个DOM元素都已经可以访问了(但是对于某些元素的某些属性此时访问可能还不精确,如图片的宽度高度)。$(function(){})在根据需要放置位置,可能在ready之前,可以在其之后。
1)是onload,不是onLoad。
2)没有document.onload,只有window.onload。
3)是window.οnlοad=myFunction,而不是window.οnlοad=myFunction()。如果写成后者,执行到此处的时候,会先计算一下myFunction()的返回值是多少,再传递给window.onload。只有写成前者,将myFunction这个函数指向window.onload(类似C语言中的指针变量)
相应unload
7. event.preventDefault():通过使用 preventDefault() 方法只取消默认的行为。
event.stopPropagation():通过使用 stopPropagation() 方法只阻止一个事件起泡。
event.stopImmediatePropagation:阻止绑定在事件触发元素的其他同类事件的callback的运行且阻止事件传播到父元素
return false:通过返回false来取消默认的行为并阻止事件起泡。
*IE不支持event.preventDefault()和event.stopPropagation事件,相应由returnValue属性设值为false:及cancelBubble属性为true:取代
target对应IE中的event.srcElement
访问事件对象,IE对应的为window.event,而其他浏览器为argument[0]或直接传参
8.弃用live()
.live()事件被驱动时,是从最内层元素往上冒泡到dom,这个是存在出现意外的风险的
.on()函数多了一个参数selector,可以从被驱动的元素直接冒泡到dom,省时又安全
下面来具体说下.live()的几个缺陷:
(1)耗时,直接绑定在document对象中,影响性能
(2)不能串起来用, For example, $(“a”).find(“.offsite, .external”).live( … ); 这个是不行的
(3)使用.live()时,event.stopPropagation()无效
8.keydown和keypress区别
虽然从字面理解, KeyDown是按下一个键的意思, 但实际上二者的根本区别是, 系统由KeyDown返回键盘的代码, 然后由TranslateMessage函数翻译成成字符, 由KeyPress返回字符值. 因此在KeyDown中返回的是键盘的代码, 而KeyPress返回的是ASCII字符. 所以根据你的目的, 如果只想读取字符, 用KeyPress, 如果想读各键的状态, 用KeyDown.
9.mouseover和mouseenter区别
不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。和mouseout连用
只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。和mouseleave连用
10.finish和stop区别
均清除动画队列但前者是所有的animation都到目标值而后者只是当前animation
11.使用on/delegate而不使用bind的好处
1)为DOM中的很多元素绑定相同事件;
2)为DOM中尚不存在的元素绑定事件;
dom->jq $(dom)
jq->dom jq[index]或者jq.get(index);
2.jq size和length方法区别:
1)针对标签对象元素,比如数html页面有多少个段落元素<p></p>
那么此时的$("p").size() == $("p").length
2)计算一个字符串的长度或者计算一个数组元素的个数
那么此时只能用length而不能用size()
3. jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法。
jQuery.fn.extend(object);给jQuery对象添加方法。
4. .html(),.text(),.val()区别:
.html()用为读取和修改元素的HTML标签
.text()用来读取或修改元素的纯文本内容
.val()用来读取或修改表单元素的value值。
这三个方法功能上的对比
.html(),.text(),.val()三种方法都是用来读取选定元素的内容;
只不过.html()是用来读取元素的HTML内容(包括其Html标签)
.text()用来读取元素的纯文本内容,包括其后代元素,
.val()是用来读取表单元素的"value"值。
其中.html()和.text()方法不能使用在表单元素上,而.val()只能使用在表单元素上;
另外.html()方法使用在多个元素上时,只读取第一个元素;.val()方法和.html()相同,如果其应用在多个元素上时,只能读取第一个表单元素的"value"值,
但是.text()和他们不一样,如果.text()应用在多个元素上时,将会读取所有选中元素的文本内容。
.html(),.text(),.val()都可以使用回调函数的返回值来动态的改变多个元素的内容。
5.eq(index)与get(index)
前者返回jquery后者返回dom
6.window.onload() 和$().ready()
onload需要页面上所有的资源都加载上之后执行,而ready则是DOM文档树已经解析完成时,说ready比onload快最显著的是比如一个页面上有一个很大的图片,加载要好久,onload只有在图片加载完成之后执行,而ready不必等图片加载完成
在$(document).ready()执行时,整个DOM文档树已经解析完成,即各个DOM元素都已经可以访问了(但是对于某些元素的某些属性此时访问可能还不精确,如图片的宽度高度)。$(function(){})在根据需要放置位置,可能在ready之前,可以在其之后。
1)是onload,不是onLoad。
2)没有document.onload,只有window.onload。
3)是window.οnlοad=myFunction,而不是window.οnlοad=myFunction()。如果写成后者,执行到此处的时候,会先计算一下myFunction()的返回值是多少,再传递给window.onload。只有写成前者,将myFunction这个函数指向window.onload(类似C语言中的指针变量)
相应unload
7. event.preventDefault():通过使用 preventDefault() 方法只取消默认的行为。
event.stopPropagation():通过使用 stopPropagation() 方法只阻止一个事件起泡。
event.stopImmediatePropagation:阻止绑定在事件触发元素的其他同类事件的callback的运行且阻止事件传播到父元素
return false:通过返回false来取消默认的行为并阻止事件起泡。
*IE不支持event.preventDefault()和event.stopPropagation事件,相应由returnValue属性设值为false:及cancelBubble属性为true:取代
target对应IE中的event.srcElement
访问事件对象,IE对应的为window.event,而其他浏览器为argument[0]或直接传参
8.弃用live()
.live()事件被驱动时,是从最内层元素往上冒泡到dom,这个是存在出现意外的风险的
.on()函数多了一个参数selector,可以从被驱动的元素直接冒泡到dom,省时又安全
下面来具体说下.live()的几个缺陷:
(1)耗时,直接绑定在document对象中,影响性能
(2)不能串起来用, For example, $(“a”).find(“.offsite, .external”).live( … ); 这个是不行的
(3)使用.live()时,event.stopPropagation()无效
8.keydown和keypress区别
虽然从字面理解, KeyDown是按下一个键的意思, 但实际上二者的根本区别是, 系统由KeyDown返回键盘的代码, 然后由TranslateMessage函数翻译成成字符, 由KeyPress返回字符值. 因此在KeyDown中返回的是键盘的代码, 而KeyPress返回的是ASCII字符. 所以根据你的目的, 如果只想读取字符, 用KeyPress, 如果想读各键的状态, 用KeyDown.
9.mouseover和mouseenter区别
不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。和mouseout连用
只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。和mouseleave连用
10.finish和stop区别
均清除动画队列但前者是所有的animation都到目标值而后者只是当前animation
11.使用on/delegate而不使用bind的好处
1)为DOM中的很多元素绑定相同事件;
2)为DOM中尚不存在的元素绑定事件;