请说出 div 和 $div 的联系和区别
区别
div 返回一个HTML DOM Object
$div 返回一个 jQuery Object
,
两者不等价$div
是包装了dom对象
后产生的,无法使用dom对象
的任何方法,比如$('#x').innerHTML
为了区分两种情况,如果是dom对象
,前面加$,如果是普通的dom对象
,就是普通的命名
div变$div
对于已经是一个dom对象
,只需要用$()
把dom对象包
装起来,就能获得一个jQuery对象
了
$div变div
两种方法
1.jQuery对象
是一个数据对象,通过[index]
的方法,得到相应的dom对象
var $x = $('#x') //jQuery对象
var x = $x[0] //DOM对象
2.jQuery
本身提供方法,通过get(index)
方法,得到相应的dom对象
var $v = $('#v') //jQuery对象
var v = $v.get(0) //DOM对象
div的属性和方法
getElementById(id) // 获取带有指定 id 的节点(元素)
appendChild(node) // 插入新的子节点(元素)
removeChild(node) // 删除子节点(元素)
innerHTML // 节点(元素)的文本值
parentNode // 节点(元素)的父节点
childNodes // 节点(元素)的子节点
attributes // 节点(元素)的属性节点
等等
$div的属性方法
就是jQuery对象的属性和方法addClass
增加一个classafter
在每个匹配的元素之后插入内容animate
创建自定义动画的函数append
向每个匹配的元素内部追加内容appendTo
把所有匹配的元素追加到另一个指定的元素元素集合中attr
设置或返回被选元素的属性值
问题2
<ul>
<li></li>
<li></li>
</ul>
请写出 $('li') 的结构。
$('li') 是一个对象
包含两个key,两个key分别是连个li
元素的方法、属性和内容
他们原型是Object(0),里面包含了jquery在元素上定义的很多方法和属性比如addClass
增加一个classafter
在每个匹配的元素之后插入内容animate
创建自定义动画的函数append
向每个匹配的元素内部追加内容appendTo
把所有匹配的元素追加到另一个指定的元素元素集合中attr
设置或返回被选元素的属性值css
访问匹配元素的样式属性empty
删除匹配的元素集合中所有的子节点eq
获取当前链式操作中第N个jQuery对象
等等
而它的原型是Object
,拥有对象常见的方法constructor
返回创建实例对象的 Object 构造函数的引用hasOwnProperty
检测一个对象是否含有特定的自身属性isPrototypeOf
方法用于测试一个对象是否存在于另一个对象的原型链上propertyIsEnumerable
方法返回一个布尔值,表示指定的属性是否可枚举toLocaleString
方法返回一个该对象的字符串表示toString
方法返回一个表示该对象的字符串valueOf
方法返回指定对象的原始值