2

javascript html タグ (span など) を使用してコンテンツとコンテンツ内の html タグを削除するにはどうすればよいですか? 一例:

<div id="content">
    <span id=1 class="note" >
        <p>   <span id=1 class="note" >hello! its one example  </span> </p>
        <li>  <span id=1 class="note" >yes,one example  </span> </li>
    </span> 
</div>

結果は次のようになります。

<div id="content">
    <p> hello! its one example</p><li>yes,one example</li>
</div>
4

4 に答える 4

4

あなたは JQuery が必要だと言っていないので、私が提案するコードは次のとおりです。

http://jsfiddle.net/9qgK7/

関連コード:

span.outerHTML = span.innerHTML;

参照: https://developer.mozilla.org/en-US/docs/DOM/element.outerHTML
PS: Firefox はouterHTMLv11 からサポートを開始しましたが、既に v15 を使用しています :)

于 2012-10-04T21:52:31.127 に答える
3

あなたの特定の例では、おそらく直接のparentNodeを上書きするのがベストプラクティスです。

var content  = document.getElementById('content'),
    span     = content.getElementsByTagName('span')[0],
    p        = content.getElementsByTagName('p')[0];

content.innerHTML = span.innerHTML;
于 2012-10-04T21:48:33.863 に答える
1

Jquery で簡単に実行できます。

$('span.note').each(function(){
    $(this).replaceWith($(this).html());
});
于 2012-10-04T21:50:55.740 に答える
1

jQueryが使えるならこんな感じでやってみる

var newContent = $("#content span").html();
$("#content").html(newContent);

編集

純粋な JS ソリューション

var spans = document.getElementById("content").getElementsByClassName("note");
var out = "";

for (var i = spans.length - 1; i >= 0; i--) {
  out += spans[i].innerHTML;
}
document.getElementById("content").innerHTML = out;

jsFiddle の例

于 2012-10-04T21:50:20.567 に答える