2

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

jQuery html() 问题

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

非常感谢!

4

2 回答 2

3

代替

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

data.push(this.outerHTML);

记住

this -- DOM 对象

$(this)-- jQuery 对象

尽可能尝试使用DOM对象而不是对象,因为前者更快一些,因为它消除了将它们转换为后者然后应用方法的额外开销。应该没什么大不了的,只是为了提供信息。jQuery

于 2013-07-19T22:16:48.600 回答
2

element.outerHTML返回包含元素外部标签的标记:

data.push(this.outerHTML);
于 2013-07-19T22:16:24.583 回答