Jquery源码分析---DOM元素(下)
2010-09-14 13:36:29 来源:WEB开发网比较三个方法的不同之处。Wrap是对每一个元素都进行wrapAll的操作,也就是把每一个元素都包裹在给定的标签中。wrapInner则是把其每个元素的所有的子元素们进行wrapAll的操作。尽管元素的子元素有多个,但是连续的。在子元素的第一个位置之前插入传入的参数标签,之后把这些连续的子元素全部都移到参数标签的内部。可以看作是一种wrap。但是对于不连续的wrapALL就不一定,一般使用时,建议只要采用wrap和wrapInner就可以了。
5.4dom元素的内容
Dom元素提供innserHTML来设定元素的内部的html内容。这可以直接把string的HTML变成Dom元素,同时也可以把Dom元素变成html标签的string.有的时间我们只需要其text内容,不要标签。这个时候可以采用regexp把标签给过滤了,就是text的内容。
第三种的内容是直接显示出来的Dom元素。一个元素的这种内容就是所有子元素。第四种内容指是的元素的value值,特别是Input类型的元素。因为对于Input类型来讲,value就是其元素内部的content。
Jquery也分别就这四种形式提供了实现。
5.4.1 html
Html是取内部的html,包含标签,如<div><b>xx</b></div>,html返回就是<b>xx</b>。Html简单,取值就直接innerHTML,设值就直接插入value。
// 设置每一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。
// 取得第一个匹配的元素的html内容
html : function(value) {
return value == undefined ? (this[0] ? this[0].innerHTML : null) : this.empty().append(value);// 去掉所有子节点,在内部加上value(字符或dom)
},
在这里还是觉得直接采用innerHTML,它的速度会更快。只要加上一个判断,如果value是string的话,就直接采用innerHTML。不需要采用append转来转去。
更多精彩
赞助商链接