2017-07-21 35 views
0

我想通过选择元素来操纵HTML并将整个对象转换为字符串,因此我可以在tinyMCE中使用setContent()将'没有父项的多个元素'的jQuery对象转换为字符串

问题是如果没有父元素,那么当转换tostring只有第一个元素被转换,而其余元素被剥离。一个简单的例子,

var elem = jQuery('<p class="first"></p><p class="second"></p>'); 
elem.prop('outerHTML'); 

将显示输出作为

"<p class="first"></p>" 

和剥离元件的其余部分。如何将jQuery对象转换为字符串而不会丢失元素?

回答

1

您可以映射它们,然后加入它们。

var test = $('<p class="first"></p><p class="second"></p>').map(function(){ return this.outerHTML; }).get().join(''); 
 
console.log(test);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

完美的作品,谢谢。 –

1

var elem = jQuery('<p class="first"></p><p class="second"></p>'); 
 
var strHtml=''; 
 
$.each(elem,function(index,value){ 
 
    strHtml+=value.outerHTML; 
 
    console.log(value); 
 
}); 
 
console.log(strHtml);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

2

var elem = jQuery('<p class="first"></p><p class="second"></p>'); 
 
var str="" 
 
elem.each(function(index,item){ 
 
str+=item.outerHTML 
 
}) 
 
console.log(str)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>