アプリ版:「スタンプのみでお礼する」機能のリリースについて

ブラウザーにページを表示させたときに一部の特定の文字だけを違った文字に置き換えたいと思っています。

ページ全体の該当文字ならば、
<script type="text/javascript">
<!--
document.body.innerHTML=document.body.innerHTML.replace(/置換前/g,'置換後');focus();
// -->
</script>
でページ全体の文字が置換できるのですが、下のケースのように一部の場所(DIV内)の場合はどのようにすればよろしいのでしょうか。

<html>


<div class="sample">
<a href="hogehoge">置換前</a>
</div>


</html>

よろしくお願いいたします。

A 回答 (3件)

ターゲットが<div>に限られるなら・・・



var allTags = document.getElementsByTagName('div');
for (var i=0;i<allTags.length;i++){
if(allTags[i].className=="sample"){
allTags[i].innerHTML=allTags[i].innerHTML.replace(/置換前/g,'置換後');
}
}

でいいんじゃ、じゃないかしらん??

div に idプロパティが付いていれば、

document.getElementById('xxx').innerHTML.replace(/置換前/g,'置換後');

で、一発だけど・・・。
    • good
    • 0
この回答へのお礼

試したところうまくいきました。

document.getElementById('xxx').innerHTML.replace(/置換前/g,'置換後');
という方法もありますね。う~ん、奥が深いです。

ありがとうございました。

お礼日時:2006/03/14 21:27

こういうことじゃないですか?



<a href="hogehoge">置換前</a>
<div class="sample">
<a href="hogehoge">置換前</a>
</div>
<a href="hogehoge">置換前</a>
<script language="javascript">
var allTags = document.getElementsByTagName('*');
for (var i =0;i<allTags.length;i++){
if(allTags[i].className=="sample"){
allTags[i].innerHTML=allTags[i].innerHTML.replace(/置換前/g,'置換後');
}
}
<!--
// -->
</script>
    • good
    • 0
この回答へのお礼

このようなやり方もあるのですね。

本当に勉強になります。
ありがとうございました。

お礼日時:2006/03/14 21:24

簡単に特定できる目印を付けてあればもっと簡単ですが、


リンク(href)がhogehoge で親エレメントがclass="sample" のDIV であるリンクということで、
こんな感じでしょうか・
----------------------------------------------------------------
window.onload=function(){
var aTags = document.getElementsByTagName('a');
var path = location.href.substring(0,location.href.lastIndexOf('/')+1);
for(var i=0;i<aTags.length;i++){
var parentEl = aTags[i].parentNode;
if(parentEl.tagName=='DIV' && parentEl.className=='sample'){
if(aTags[i].href==path+"hogehoge" && aTags[i].innerHTML=="置換前"){
aTags[i].innerHTML="置換後";
}
}
}
};
    • good
    • 0
この回答へのお礼

私の説明不足だったのですが、アンカーのURLはダミーとしていれたもので、それ自体は無関係なものでした。
でも、URLを指定した場合にはこのような使い方もできるんだなと参考になりました。

ありがとうございました。

お礼日時:2006/03/14 21:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!