jQuery комментарий / раскомментировать
Я ищу способ обернуть, с помощью jQuery, элемент в комментарий, например:
<!--
<div class="my_element"></div>
-->
, а также способ, чтобы удалить комментарии.
это возможно? потому что я не нашел ничего связанного.
4 ответов
чтобы обернуть элемент комментарием или, более конкретно, заменить элемент на узел комментария, имеющий HTML этого элемента:
my_element_jq = $('.my_element');
comment = document.createComment(my_element_jq.get(0).outerHTML);
my_element_jq.replaceWith(comment);
переключить его обратно:
$(comment).replaceWith(comment.nodeValue);
если у вас нет ссылки на узел комментариев, вам нужно пересечь дерево DOM и проверить nodeType каждого узла. Если его значение равно 8, то это комментарий.
например:
<div id="foo">
    <div>bar</div>
    <!-- <div>hello world!</div> -->
    <div>bar</div>
</div>
JavaScript:
// .contents() returns the children of each element in the set of matched elements,
// including text and comment nodes.
$("#foo").contents().each(function(index, node) {
    if (node.nodeType == 8) {
        // node is a comment
        $(node).replaceWith(node.nodeValue);
    }
});
вы можете прокомментировать элемент следующим образом:
function comment(element){
    element.wrap(function() {
        return '<!--' + this.outerHTML + '"-->';
    });
}
Я впечатлен, что никто не дал следующего решения. Следующее решение требует контейнера. Этот контейнер будет иметь внутри, прокомментированный / незафиксированный код.
function comment(element) {
    element.html('<!--' + element.html() + '-->')
}
function uncomment(element) {
    element.html(element.html().substring(4, element.html().length - 3))
}
function isCommented(element) {
    return element.html().substring(0, 4) == '<!--';
}
для обертывания?
function wrap(jQueryElement){
    jQueryElement.before("<!--").after("-->");
}
Не уверен,насколько успешно вы найдете комментарии после упаковки. Текстовый поиск по элементу body с использованием регулярных выражений является опцией.
или это - можно ли удалить HTML-комментарий из dom с помощью jquery
