0

私は何時間も試してみて、StackOverflow で多くのサンプルを調べましたが、単純なスクリプトを修正できません。

jQueryでDOMをつかんだ

var color = $('#bscontainer').html();

色の内容は次のとおりです。

<img src="resources/P/Blue_BG_2Col.png" id="bg">
<img src="resources/P/Blue_Content_2Col.png" id="content">
<img src="resources/P/Blue_Title_ExchangeRate.png" id="title">
<img src="resources/P/Blue_SubTitle_2Col.png" id="subtitle">
<img src="resources/P/Blue_Disclaimer_Disclaimer.png" id="disclaimer">

私の考えは、すべての青を緑に変更することです。私はすでにこれを試しています:

curColor="Blue";
newColor="Green";
t=color.replace(curColor,newColor);

それは単に機能しません。何か案は?

4

3 に答える 3

1

質問に直接答えるには、文字列パラメーターを針として取るときに javascript で置き換え、最初のインスタンスのみを置き換えます。文字列内のすべてのインスタンスを置き換えるには、グローバル正規表現を使用します。

str.replace(/Blue/g, 'Green');

ただし、タグのsrc属性を変更するだけで十分です。imgこれは、これを攻撃するより適切な方法です。あなたがしようとしているようにhtmlを変更すると、DOM要素にバインドされたイベントやデータが失われます。

于 2013-02-28T21:58:44.080 に答える
0

したがって、基本的には、要素内の各画像を検索し、属性内colorで置き換える必要があります。これは、次の1つの方法です。BlueGreensrc

var color = $('#bscontainer');
color.find('img').each(function(){

    curColor="Blue";
    newColor="Green";
    this.src = this.src.replace(curColor,newColor);

});

.html()コードの一部は必要ありません...

于 2013-02-28T21:52:47.123 に答える
0

コールバック関数を使用して実際にHTMLを更新し、正規表現(オブジェクト)を使用してすべてのインスタンスを一度に置き換えます。

$('#bscontainer').html(function (i, str) {
    curColor = new RegExp("Blue","g"); // global replace
    newColor = "Green";
    return str.replace(curColor, newColor);
});
于 2013-02-28T21:53:52.847 に答える