1

我希望有一个简单的方法可以解决我的问题。我基本上是在做一个简单的 jquery 搜索,返回值是一个数组,其中包含一组嵌套的 span html 元素。所以这样的查询:

$('.sqs-simple-like').eq(0);

将返回具有与“.sqs-simple-like”相同的类结构的第一个对象。当我在开发人员窗口的控制台中查询它时,它会返回:

[<span class="sqs-simple-like" data-item-id="db8a2c74088b44608eed112e15e45207" data-like-count="0" id="yui_5a41b52d-e23f-449d-a828-981814b19c5e">
  <span class="like-icon"></span><span class="like-count">0 Likes
  </span>
</span>]

因此,它返回一个包含一组嵌套跨度项的数组。本质上,我想将整个返回对象用作一个简单的字符串。基本上,我只想将此嵌套的 span 元素插入我网站上的另一个 div 中。但是,我似乎无法以简单字符串的形式访问返回值。如果我使用.html()方法,它只返回内部 span 元素(而不是整个嵌套结构)。我试过寻找其他方法,但似乎没有任何效果。.toString()方法似乎也不起作用。是否有其他方法可以将此嵌套的 span 元素转换为简单的字符串?

4

2 回答 2

4

演示

var str = $('.sqs-simple-like').get(0).outerHTML; //or use [0] instead of get(0)
于 2013-07-05T21:15:46.807 回答
0

那是因为.html返回匹配元素的内部 HTML。

您可以通过在目标周围包裹另一个元素来获得所需的结果,.wrap如下所示:

$('.sqs-simple-like').eq(0).clone().wrap("div").html();

.clone在包装之前添加了一个调用,因为没有它.wrap也会div在活动 DOM 中插入元素,这可能是不可取的。

于 2013-07-05T21:15:05.957 回答