10

假设我有一个这样的数组:

var content = [ $('<p>...</p>'), $('<p>...</p>') ];

我需要获取连接元素的标记。所以我需要将content“转换为原始字符串:<p>...</p><p>...</p>”。

这怎么能很容易做到呢?似乎框架中应该已经有一些东西可以做到这一点。

不知何故可能会转换content为文档片段并调用.html()文档片段来获取标记?

4

3 回答 3

15

没有什么是自动的,但你可以轻松地做你刚才描述的事情。

试试看:http: //jsfiddle.net/Y5x5z/

var content = [ $('<p>...</p>'), $('<p>...</p>') ];

var container = $('<div/>');

$.each(content, function(i,val) {
    container.append(val);
});

alert(container.html());
于 2010-07-22T17:55:11.720 回答
3

这比其他答案短,工作正常,并且不使用显式循环:

[$("<p>"), $("<p>")].map(function(el){return el.get()[0].outerHTML;})

正如 Crazy Train 在评论中指出的那样,这可以被美化如下:

var content = [ $('<p>...</p>'), $('<p>...</p>') ];

$.fn.toString = function() {
    return this[0].outerHTML
};

alert(content.join("")); // <p>...</p><p>...</p>
于 2013-06-11T19:11:54.110 回答
-1

这是一个旧帖子,有人可能会像我一样偶然发现它......正确的方法是.join()(标准 JavaScript 不是 jQuery)

var content = [ $('<p>...</p>').html(), $('<p>...</p>').html() ];

var concatenatedHTML = content.join('');

//concatenatedHTML would then be '<p>...</p><p>...</p>'
于 2011-08-23T23:04:08.707 回答