2011-01-20 133 views
1

因此,Ajax调用将返回一些数据为html。jQuery - 在另一个元素中查找元素并获取它的html内容

我创建这个数据元素与var comment = $("<ul />").html(data);

现在我想从我刚才在上面创建的comment元素中的另一个元素的HTML内容。 我正在使用var commentbody = comment.find(".comment-body").html();

这是有效的,但问题是我只能得到元素的内容。我也想要元素标签。

我该怎么做?

+0

出于好奇,为什么你需要它的HTML字符串? – user113716 2011-01-20 01:21:56

+0

@patrick dw:因为我想从评论模板中分离出代码。如果我只能得到评论内容文本,我将不得不在JavaScript中对自己的评论模板进行硬编码(或其中的一部分)。最初我想要替换整个列表项,但评论可以有孩子的评论,所以不会工作:) – Alex 2011-01-20 01:24:14

回答

2

你可以这样做:

var commentbody = comment.find(".comment-body"); 

var outerHTML = commentbody[0].outerHTML || 
          commentbody.clone().appendTo('<div>').parent().html(); 

在这里,你先找到你想要的.comment-body元素。然后,您使用[0]访问DOM元素并获取其outerHTML属性。

如果它不具有outerHTML特性,建立这样一个clone()(docs)appendTo()(docs)<div>,穿越到parent()(docs)<div>并获取其html()(docs)内容。

此答案假定只有一个.comment-body被发现。

相关问题