获取jquery DOM对象的整个HTML的字符串表示形式

Sco*_*ard 7 jquery dom

我已经看了一下,并且在解决我遇到的一个小问题时遇到了一些困难.

我基本上有一串HTML,我将其转换为JQuery DOM对象,以便我可以使用JQuery的.remove()轻松删除所有具有某个类的元素.也就是说,

var radHtml = editor.get_html();

var jqDom = $(radHtml);

$(".thickbox", jqDom).remove();
$(".thickboxcontent", jqDom).remove();

editor.set_html(this.innerHTML);
Run Code Online (Sandbox Code Playgroud)

注意:HTML是从RADEditor文本编辑器中的内容派生的,因此没有父HTML标记,因此可以如下所示:

<p>This is a header</p>
<p>this is some content followed by a table </p>
<a href="#TB_inline?height=350&amp;width=400&amp;inlineId=myOnPageContent0" class="thickbox">Test Thickbox</a>
<div id="myOnPageContent0" class="thickboxcontent">
<table class="modal">
    <thead>
    </thead>
    <tbody>
        <tr>
            <td>item</td>
            <td>result</td>
        </tr>
        <tr>
            <td>item 1</td>
            <td>1</td>
        </tr>
        <tr>
            <td>item 2</td>
            <td>2</td>
        </tr>
        <tr>
            <td>item 3</td>
            <td>3</td>
        </tr>
    </tbody>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)

以下是jqDom.html()从上面的HTML返回的内容:

"This is a header"
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种简单的方法可以做到这一点 - 有一些html并删除所有具有某个类(但保留其内容)的元素(在本例中为div).JQuery不必使用,但我想.

操作DOM对象很好 - 它将完整的DOM对象作为我遇到问题的字符串完整地获取.

任何帮助都会很有用.谢谢.

Ale*_*ton 5

如果您希望每个匹配元素的html到您的选择器,请尝试执行以下操作map:

var allHtmls = jqDom.find('.thickbox').map(function(){ 
  return this.innerHTML; 
});
Run Code Online (Sandbox Code Playgroud)

此外,听起来你可能想要使用unwrap添加到jQuery 1.4+(http://api.jquery.com/unwrap/)

jqDom.find('.thickbox').children().unwrap();

  • 然后将您发送的html包装在一个div中,然后在其上调用`html`.这样它就不会作为多个元素存储在jquery对象上. (3认同)

Jua*_*era 1

var radHtml = editor.get_html();

var jqDom = $(radHtml);
jqDom.wrap('div'); //dont remember if thats ok or u need to asign it in the jqDom again
$(".thickbox", jqDom).remove();
$(".thickboxcontent", jqDom).remove();

editor.set_html(jqDom.html());
Run Code Online (Sandbox Code Playgroud)

也许这会有所帮助