我上一篇文章中有以下问题。
我想将每个node
存储为full html markup
。
data
数组应该类似于
['<em>test</em>', 'here for the testing purpose',
'second line', '<strong>texts</strong>', 'here']
我现在的代码:
if(this.nodeType === 3) { // Will only select element nodes
data.push($(this).text());
}else if(this.nodeType === 1){
data.push($(this).html());
}
但它只存储
['test', 'here for the testing purpose','texts','here']
是否可以存储html markup
?
非常感谢!
答案 0 :(得分:3)
替换
data.push($(this).html());
与
data.push(this.outerHTML);
记住
this
- DOM对象
$(this)
- jQuery对象
尝试尽可能使用DOM
个对象而不是jQuery
个对象,因为前者有点快,因为它消除了将它们转换为后者然后应用方法的额外开销。不应该是一个大问题,但只是为了信息。
答案 1 :(得分:2)
element.outerHTML
返回标记,包括元素的外部标记:
data.push(this.outerHTML);