$ 和getElementId的区别 / 一个jquery对象的原型

请说出 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 方法返回指定对象的原始值

参考 http://www.cnblogs.com/theWayToAce/p/5591221.html

posted @ 2017-12-19 00:56  mayufo  阅读(1129)  评论(0编辑  收藏  举报