• ベストアンサー

文字列置換

文字列置換 htmlのbody内のタグではない(画面に表示される)特定の文字列を別の文字列に置き換えるコードはどう書けばいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

こんな感じ? (全角空白は半角に) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>test</title> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> <!-- window.onload = function(){ change("aaa", "ABA"); } function change(string1, string2) {  var elm = document.getElementsByTagName("body")[0];  checker(elm, function(node) {   node.nodeValue = node.nodeValue.split(string1).join(string2);  }); //alert(elm.innerHTML);  elm = null; } function checker(r, func) {  var tmp, n = r.firstChild;  while (n) {   if ( n.nodeType == 3) func(n);   if (tmp = n.firstChild) {    n = tmp;   } else {    do {     if (n === r) { n = null; break; }     if (tmp = n.nextSibling) { n = tmp; break; }    } while(n = n.parentNode)   }  } } //--> </script> </head> <body> <div class="aaa" id="aaa">testaaatest <span class="aaa"> 確かめてaaaみる ためのaaaテスト文aaa </span> aaatestaaatest </div> </body> </html>

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

考え方としては <html> <head> <script type="text/javascript"> function okikae(keyword) { var doc = document.getElementsByTagName("body")[0]; doc.innerHTML=doc.innerHTML.replace(new RegExp( keyword, "gi" ),'おきかえっ'); } </script> </head> <body> おきあいうえおき <input type="button" value="おきかえ" onClick="okikae('おき')"> おきあいうえおき </body> </html> こんな感じね。 ただ、これだとタグを無視していないので DOMを使って文字列を取り出してやらないといけないと思うわよ。

関連するQ&A