请说出 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
增加一个class
after
在每个匹配的元素之后插入内容
animate
创建自定义动画的函数
append
向每个匹配的元素内部追加内容
appendTo
把所有匹配的元素追加到另一个指定的元素元素集合中
attr
设置或返回被选元素的属性值
问题2
<ul>
<li></li>
<li></li>
</ul>
请写出 $('li') 的结构。
$('li') 是一个对象
包含两个key,两个key分别是连个li
元素的方法、属性和内容
他们原型是Object(0),里面包含了jquery在元素上定义的很多方法和属性比如
addClass
增加一个class
after
在每个匹配的元素之后插入内容
animate
创建自定义动画的函数
append
向每个匹配的元素内部追加内容
appendTo
把所有匹配的元素追加到另一个指定的元素元素集合中
attr
设置或返回被选元素的属性值
css
访问匹配元素的样式属性
empty
删除匹配的元素集合中所有的子节点
eq
获取当前链式操作中第N个jQuery对象
等等
而它的原型是Object
,拥有对象常见的方法
constructor
返回创建实例对象的 Object 构造函数的引用
hasOwnProperty
检测一个对象是否含有特定的自身属性
isPrototypeOf
方法用于测试一个对象是否存在于另一个对象的原型链上
propertyIsEnumerable
方法返回一个布尔值,表示指定的属性是否可枚举
toLocaleString
方法返回一个该对象的字符串表示
toString
方法返回一个表示该对象的字符串
valueOf
方法返回指定对象的原始值