-1

グリースモンキーを見つけて少し遊んだ。この行をテストして、Web サイトのテキスト コンテンツを変更しました

document.body.innerHTML= document.body.innerHTML.replace("someone","funny");

そしてそれはうまくいきました。そのウェブサイトのテキストをさらに置き換えたかったのですが、何度もコピーして貼り付けたくなかったので、次のような小さな関数を書きました。

function a(s,d){document.body.innerHTML= document.body.innerHTML.replace(s,d);}

そのように呼ぶ:

a("test","success");

こちらも問題なし。しかし、その関数を複数回呼び出したいと思いました。お気に入り:

a("test","success");
a("some","thing");

しかし、私のスクリプトは最初の関数しか実行しませんでした..?

配列を使用して別の方法を試しました..ソースコードは次のとおりです。

var array = [];
array.push("john")
array.push("jane")
array.push("foo")
array.push("bar")
b(array);

function b(array)
{
for(var i = 0; i<(array.length-1); i=i+2)
{
   document.body.innerHTML= document.body.innerHTML.replace(array[i],array[i+1])
}
}

しかし、繰り返します..一度だけ実行します..

私は何か間違っていますか?

document.body.innerHTML= document.body.innerHTML.replace("foo","bar") document.body.innerHTML= document.body.innerHTML.replace("some","one") を使用しているため

うまく動作します:E

4

1 に答える 1

-1

for(var i = 0; i<(array.length-1); i=i+2)

あなたの問題の一部かもしれません...

配列の長さは 4 です.... 0 からカウントを開始します。これは、リストの 3 までしか移動しないことを意味し (私が思うに)、i=i+2 は、1 つおきにしか処理していないことを意味します (私が思うに) ..

試す

for(var i = 0; i<(array.length-1); i=i++)

また

for(var i = 0; i<(array.length); i=i++)

待って..........実行すると、最初の配列値または最後の配列値が表示されますか? 1 つを次のものに置き換えているため、ループが速すぎてすべてを表示できない場合があります。

于 2013-07-21T16:01:55.460 に答える