假设我有一个这样的数组:
var content = [ $('<p>...</p>'), $('<p>...</p>') ];
我需要获得连接元素的标记。所以我需要将content
“转换为原始字符串:”<p>...</p><p>...</p>
“。
如何轻松完成?似乎框架中应该有一些东西可以做到这一点。
不知何故可能会将content
转换为文档片段并在文档片段上调用.html()
来获取标记?
答案 0 :(得分:14)
没有什么是自动的,但你可以很容易地做你刚刚描述的事情。
试一试: http://jsfiddle.net/Y5x5z/
var content = [ $('<p>...</p>'), $('<p>...</p>') ];
var container = $('<div/>');
$.each(content, function(i,val) {
container.append(val);
});
alert(container.html());
答案 1 :(得分: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>
答案 2 :(得分:-1)
这是一篇很老的帖子,有人可能会像我一样偶然发现...正确的方法是.join()(标准的JavaScript不是jQuery)
var content = [ $('<p>...</p>').html(), $('<p>...</p>').html() ];
var concatenatedHTML = content.join('');
//concatenatedHTML would then be '<p>...</p><p>...</p>'