JQuery html()方法使用一些误区。
2014-10-28 16:31
357 查看
最近我在处理一个比较复杂的DOM控制的业务的时候发现html()这个方法的一些领我有些不解的地方。
1.html() 获取的是第一个匹配的元素的内容,不包括它自己。
2.如果需要获取包括元素自己本身的html的话,请使用prop("outerHTML"),如:
$("div").prop("outerHTML"); //这个的返回值会包含div自己本身以及以内的所有html代码。
3.假如你使用了一个很复杂的DOM操作,例如使用了clone(),find(),之类的操作,你会发现,当你想修改这些标签内的内容时
如:
$(dom).clone().find(children).html("<p>hello world</p>");
经过本人试验,结果会把children中的内容清空,假如children是<div><p>haha</p></div>,那么就会变成
<div></div>。
第三点有待论证,欢迎大神过来指导下,为什么会出现这种情况,目前我只能用文本重组里面的内容,却不能通过html(),append()...等文档操作来重组内容。是不是因为克隆后,就不是文档的一部分了,所以这些文档操作对该dom对象全部都无效了?抱歉,我只能这么想了......
1.html() 获取的是第一个匹配的元素的内容,不包括它自己。
2.如果需要获取包括元素自己本身的html的话,请使用prop("outerHTML"),如:
$("div").prop("outerHTML"); //这个的返回值会包含div自己本身以及以内的所有html代码。
3.假如你使用了一个很复杂的DOM操作,例如使用了clone(),find(),之类的操作,你会发现,当你想修改这些标签内的内容时
如:
$(dom).clone().find(children).html("<p>hello world</p>");
经过本人试验,结果会把children中的内容清空,假如children是<div><p>haha</p></div>,那么就会变成
<div></div>。
第三点有待论证,欢迎大神过来指导下,为什么会出现这种情况,目前我只能用文本重组里面的内容,却不能通过html(),append()...等文档操作来重组内容。是不是因为克隆后,就不是文档的一部分了,所以这些文档操作对该dom对象全部都无效了?抱歉,我只能这么想了......
相关文章推荐
- JQuery中html()方法使用不当带来的陷阱
- 记录一些Jquery操作控件使用方法
- jQuery一些常用特效方法使用实例
- 避免使用jQuery的html方法来替换标签,而是使用replaceWith方法
- jQuery html()方法使用不了无法显示内容的问题
- jquery之设置元素内容(替换HTML或文本内容,使用html()和text()方法)
- HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
- jQuery一些常用特效方法使用实例
- HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
- HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
- 难点总结:Jquery动态加载数据库中的数据(解答人:郭哲 方式:讲述jquery原理及一些函数的使用方法,学会看帮助文档)
- HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
- JQuery中html、append、appendTo、after、insertAfter、before、insertBefore、empty、remove系列方法的使用。
- HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
- Jquery使用方法的一些总结
- JQuery中html、append、appendTo、after、insertAfter、before、insertBefore、empty、remove系列方法的使用。
- jquery必须知道的一些常用特效方法及使用示例(整理)
- jquery必须知道的一些常用特效方法及使用示例(整理)
- HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
- jquery append()方法与html()方法的区别及使用介绍