假设我有这样一个数组:
var content = [ $('<p>...</p>'), $('<p>...</p>') ];
我需要获取连接元素的标记。因此,我需要将content
转换为原始字符串:<p>...</p><p>...</p>
。有什么简单的方法可以实现这一点吗?似乎框架中应该已经有类似的功能。
或者可以将
content
转换为文档片段,并在文档片段上调用.html()
来获取标记?假设我有这样一个数组:
var content = [ $('<p>...</p>'), $('<p>...</p>') ];
我需要获取连接元素的标记。因此,我需要将content
转换为原始字符串:<p>...</p><p>...</p>
。content
转换为文档片段,并在文档片段上调用.html()
来获取标记?没有自动化的方法,但是你可以轻松地实现你刚才描述的功能。
试一下:http://jsfiddle.net/Y5x5z/
var content = [ $('<p>...</p>'), $('<p>...</p>') ];
var container = $('<div/>');
$.each(content, function(i,val) {
container.append(val);
});
alert(container.html());
$.fn.append.apply($('<div>'), content).html()
。 - Roman这个答案比其他答案更简短,运行正确,而且不使用显式循环:
[$("<p>"), $("<p>")].map(function(el){return el.get()[0].outerHTML;})
var content = [ $('<p>...</p>'), $('<p>...</p>') ];
$.fn.toString = function() {
return this[0].outerHTML
};
alert(content.join("")); // <p>...</p><p>...</p>
.map()
和$.each()
一样都是循环。任何解决方案最终都会在某个级别上循环数组内容,但这里有一个技巧可以很好地隐藏它。http://jsfiddle.net/Y5x5z/4/ - user2437417$.makeArray(content).join('')
。 - eon我最近遇到了同样类型的任务,现在处理它的方法很简单:
const elements = [$('<p>...</p>'), $('<p>...</p>')];
const resultString = elements.reduce(
(HTMLString, [element]) => HTMLString.concat(element.outerHTML),
'',
);
这是一篇旧帖子,可能会像我一样被偶然发现... 正确的方法是 .join()(标准 JavaScript 而非 jQuery)
var content = [ $('<p>...</p>').html(), $('<p>...</p>').html() ];
var concatenatedHTML = content.join('');
//concatenatedHTML would then be '<p>...</p><p>...</p>'
$.each()
函数。如果我误解了你的意思,我很抱歉,因为你的意思对我来说并不是完全清楚的。 - Stephen