1

私は見つけたい:

New York」を「New York City
Washington」に置き換え、「Seattle
Florida」に置き換え、「Jacksonville
South-Carolina」に置き換え、「Columbia
West_Virginia」に置き換えて置き換えます「チャールストン」で

以下のサンプルコードを作成しましたが、うまくいかないようです:

デモ: http://jsfiddle.net/N3ZmS/

<td id="dont-replace-them">
New York<br />
Washington<br />
Florida<br />
South-Carolina<br />
West_Virginia<br />
</td>

<br />

<td id="replace-them">
New York<br />
Washington<br />
Florida<br />
South-Carolina<br />
West_Virginia<br />
</td>

<script type="text/javascript">
function replaceWords() {
    document.getElementById("replace-them").innerHTML.replace("New York", "New York City");
    document.getElementById("replace-them").innerHTML.replace("Washington", "Seattle");
    document.getElementById("replace-them").innerHTML.replace("Florida", "Jacksonville");
    document.getElementById("replace-them").innerHTML.replace("South-Carolina", "Columbia");
    document.getElementById("replace-them").innerHTML.replace("West_Virginia", "Charleston");
};  
</script>


それを機能させるために何を修正する必要があるか誰でも知っていますか?

4

2 に答える 2

7

.replace();置換された文字列を返します。DOM 内の文字列は変更されません。

var str = 'foobar';
str.replace('foobar', 'lorem ipsum');    // Returns 'lorem ipsum', but does no DOM manipulation.

それぞれの結果を一時変数に保存し、.replace()後で DOM を更新する必要があります。

function replaceWords(el) {
    el.innerHTML = el.innerHTML
                    .replace('New York', 'New York City')
                    .replace('Washington', 'Seattle')
                    .replace('Florida', 'Jacksonville')
                    .replace('South-Carolina', 'Columbia')
                    .replace('West_Virginia', 'Charleston');
}

replaceWords(document.getElementById('replace-them'));
于 2012-11-21T14:03:20.340 に答える
3

新しい文字列値を DOM 要素に適用する必要があります

document.getElementById("replace-them").innerHTML =
    document.getElementById("replace-them").innerHTML.replace("New York", "New York City");
// etc.

ちなみに、関数を定義した後、replaceWords()実際に呼び出すことも確認する必要があります。

divまた、マークアップを正しくレンダリングするには、または同様の要素を使用する必要があります。

ここで働くフィドル

于 2012-11-21T14:03:15.407 に答える