如何将html标记存储到数组中

时间:2013-07-19 22:14:47

标签: javascript jquery

我上一篇文章中有以下问题。

Jquery html() issue

我想将每个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

非常感谢!

2 个答案:

答案 0 :(得分:3)

替换

data.push($(this).html());

data.push(this.outerHTML);

记住

this - DOM对象

$(this) - jQuery对象

尝试尽可能使用DOM个对象而不是jQuery个对象,因为前者有点快,因为它消除了将它们转换为后者然后应用方法的额外开销。不应该是一个大问题,但只是为了信息。

答案 1 :(得分:2)

element.outerHTML返回标记,包括元素的外部标记:

data.push(this.outerHTML);