JQuery: как получить все атрибуты HTML селектора в одном выражении в виде строки? - PullRequest
2 голосов
/ 22 февраля 2010

У меня есть div, который выглядит так:

<div id="exampleDiv" class="class1 class2" title="example title"></div>

Я выбрал с помощью JQuery, используя это утверждение:

var $div = $('#exampleDiv');

Я хотел бы получить строку самого тега в виде html, так что я действительно получаю:

"<div id='exampleDiv' class='class1'....", etc.

Кто-нибудь знает о функции JQuery, которую я мог бы использовать, которая делает это, учитывая селектор? Я думаю, что-то вроде $div.htmlHeader() или что-то в этом роде.

Любая помощь будет оценена. Спасибо.

Ответы [ 2 ]

6 голосов
/ 22 февраля 2010

Клонируйте элемент в новый div, удалите дочерние элементы клона и напечатайте html родительского div:

var html = $("<div/>").append($("#exampleDiv").clone().empty()).html();

Если элемент, который вы хотите напечатать, имеет много потомков, и вы не хотите нести расходы на клонирование всей иерархии, и если вы не против кратко оставить безопасность DOM-интерфейса jQuery, вы можете сделать это вместо:

var html = $("<div/>").append($("#exampleDiv")[0].cloneNode(false)).html();
0 голосов
/ 22 февраля 2010

Вот, пожалуйста:

$.fn.tagonly = function() {
    return $('<div/>').append($(this).clone().empty())
        .html().replace(/>(.|[\r\n])*$/ig, '>');
};

Редактировать Исправлены дополнительные ) и проблема перевода строки. Спасибо, Патрик.

...