要素が1つしかない場合、これは機能します:
var str=document.getElementsByClassName("data rating")[0].innerHTML;
var n=str.replace(/\*/g,"star");
document.getElementsByClassName("data rating")[0].innerHTML=n;
複数のdata rating
要素が存在する場合は、次を使用します。
var elems =document.getElementsByClassName("data rating");
for(var i = 0; i < elems.length; i++){
elems[i].innerHTML = elems[i].innerHTML.replace(/\*/g,"star");
}
どちらの方法でも、元のコードのいくつかの欠陥が修正されます。
まず、 に渡された引数で rating のスペルが間違っていましたgetElementsByClassName
。次に、getElementsByClassName()
スペースで区切られたクラス名を使用して、複数の引数ではなく、複数のクラスを持つ要素を選択します。GetelementsByClassName
は、反復処理が必要な要素の配列を返します。
JS フィドル: http://jsfiddle.net/sgGQz/5/