0

次のコードを検討してください。

<script type="text/javascript" src="some.js"></script>
<script type="text/javascript" src="some2.js"></script>

<script type="text/javascript">

    var scripts = document.getElementsByTagName("script");

    for (i=0;i<scripts.length;i++){

        if(scripts[i].src=="some.js") {
        scripts[i].src = "somechanged.js";
        }
    }


</script>

<script type="text/javascript" src="some.js"></script>

が機能しない理由がわかりifません。// でコメントすると、読み込まれたすべてのスクリプト src に対して機能します。toLowerCase()や などのトリックをいくつか試しvalueOf()ましたが、うまくいきませんでした。

if を変更するif(1==1)と、もちろん動作します。

文字列比較で何が間違っていますか?

よろしく

4

1 に答える 1

1

リクエストに応じて、回答としてコメントを追加しました。

  • srcプロパティは絶対 URL です。これは仕様書に明記されています。

  • DOM が実際にそれを取得するために使用しているプロパティではなく、設定した実際の属性が必要です。

  • HTML に属性が必要scripts[i].getAttribute("src")な場合は、正しい値を返す which を使用できます。

于 2013-11-14T08:45:47.353 に答える