以下は、すべてのh2要素をループし、正規表現置換を介して先頭を削除します。
window.onload = function() {
var h2s = document.getElementsByTagName("h2"),
i;
for (i=0; i < h2s.length; i++)
h2s[i].innerHTML = h2s[i].innerHTML.replace(/^[^-]+ - /,"");
};
デモ: http: //jsfiddle.net/nGfYd/5/
JavaScriptはページの解析中に検出されたときに実行されるため、onload
ハンドラーはページの読み込みが完了した後にコードが実行されるようにしますが、JavaScriptは既に解析された要素のみを操作できます。onload
問題の要素の後にスクリプトブロックにコードを含める場合は、ハンドラーは必要ありません。実際、私の好みは、ブロックを本文の最後の終了タグ<script>
の直前に配置し、ハンドラーを使用しないことです。</body>
onload
編集:他の回答の下のコメントから、jQueryを使用して満足しているようです。その場合、これを行うことができます。
$(document).ready(function(){
$("h2").text(function(i, oldVal) {
return oldVal.replace(/^[^-]+ - /,"");
});
});
デモ: http: //jsfiddle.net/nGfYd/7/
関数を.text()
jQueryに渡すと、要素ごとにその関数が呼び出され、要素の古い(現在の)値が渡されるため、.each()
ループも必要ありません。
(本文の最後にあるスクリプトブロックにコードを配置する場合も、ドキュメントレディハンドラーは必要ありません。)