1

サーバーからのコメント付きhtmlの構造があると仮定します(FBのようにレンダリング速度を向上させるためにコメントが付けられています)。その後、コンテンツを削除し、ブラウザでhtmlをレンダリングできるようにする必要があります。これを行う最も簡単な方法は何ですか?

4

6 に答える 6

3

「content()」メソッドを使用して、コメントを含むすべてのノードを設定できます。ライトとプラグインは無料です。

次に、「filter()」メソッドを使用してコレクションをフィルタリングする必要があります

$container
    .contents()
    .filter(function(){ return this.nodeType == 8; })
    .remove(); // replaceWith()  etc.
于 2012-09-18T08:20:42.587 に答える
3

おそらくjqueryコメント解除プラグインを使用しています

于 2012-09-18T07:53:55.380 に答える
2
function _removeComments(node){
    if(!node ||!node.parentNode)return;

    if(node.nodeType == 8){
        node.parentNode.removeChild(node);
        戻る;
    }

    for(var c = node.firstChild; c;){
        var n = c.nextSibling;
        _removeComments(c);
        c = n;
    }
}

関数removeComments(element){
    element.each(function(){
        _removeComments(this);
    });
}

于 2014-04-23T23:06:36.640 に答える
1
$(stringHtml).comments().remove();

... jquery-commentsプラグインを使用する:

http://www.bennadel.com/blog/1563-jquery-comments-plug-in-to-access-html-comments-for-dom-templating.htm

于 2012-09-18T07:56:23.817 に答える
1

コメント付きのDOMを取得してから、replace()

  var dom =  $.trim($('#domcontainer').html()).replace('<!--','').replace('-->','');
于 2012-09-18T07:58:26.770 に答える
0

この方法を試してください。要素ノードにコメント付きのHTMLを指定すると、コメントブロックが削除され、HTMLが表示されます。

function uncommentNode(node) {
    var nodestr = node.innerHTML;
    var noderevealHTML =  nodestr.replace(/<!--/ig, '').replace(/-->/ig, ''); // Update expressions here.
    node.innerHTML = noderevealHTML;
}

コメントされたHTMLのコメント開始/終了タグに3つ以上のダッシュ(<-/ <---)が含まれている場合は、上記の関数のreplace()式を必ず更新してください。

より良い説明のためにこれがJSFIDDLEです。

于 2015-04-09T20:09:48.387 に答える