Получите строковое представление всего HTML Объекта DOM jQuery

Я имел, что-то вроде озирается, и испытываю некоторые затруднения при решении крошечной проблемы, которую я имею.

У меня в основном есть строка HTML, я преобразовываю это в Объект DOM JQuery так, чтобы я мог легко удалить все элементы, которые имеют определенный класс с помощью .remove JQuery (). Т.е.

var radHtml = editor.get_html();

var jqDom = $(radHtml);

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

editor.set_html(this.innerHTML);

Примечание: 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>

Вот то, что jqDom.html () возвращает из HTML выше:

"This is a header"

Я задавался вопросом, был ли простой способ сделать, это - имеет некоторый HTML и удаляет все элементы (в этом случае отделения), которые имеют определенный класс (но отъезд их содержания). JQuery не имеет к используемому, но я хотел бы.

Управление Объектом DOM прекрасно - это получает полный Объект DOM в целом как строку, с которой у меня есть проблема.

Любая справка очень ценилась бы.Спасибо.

7
задан Scozzard 11 June 2010 в 02:57
поделиться

2 ответа

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());

Может это поможет

1
ответ дан 7 December 2019 в 09:57
поделиться

Если вы хотите, чтобы html каждого совпадающего элемента отображался в вашем селекторе, попробуйте создать map :

var allHtmls = jqDom.find('.thickbox').map(function(){ 
  return this.innerHTML; 
});

Кроме того, похоже, вы можете использовать unwrap , который был добавлен в jQuery 1.4+ ( http://api.jquery.com/unwrap/ )

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

5
ответ дан 7 December 2019 в 09:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: