0

次のコードを使用して、別のスクリプトを呼び出しています。

function savecoupon<?php echo $r['id']; ?>() {
    var listingid = document.savecouponform<?php echo $r['id']; ?>.listingid.value;
    http.open('get', 'script/save_coupon.php?listingid='+listingid+'');
    http.onreadystatechange = handleResponse;
    http.send(null);
}

function handleResponse() {
    if(http.readyState == 4){
        response = http.responseText;
        alert(response);
        document.getElementById(response).innerHTML = "Saved";
    }
}

適切な結果が表示されています。alert(response)これは、置き換えている div の要素 ID です。しかし、何らかの理由で、応答を getElementById に入れると、firebug で次のエラーが発生します。

TypeError: document.getElementById(...) is null
document.getElementById(response).innerHTML = "Saved";

innerHTML コマンドをdocument.getElementById("savecouponarea1327").innerHTML = "Saved";すべてのものに置き換えると、想定どおりに機能します。getElementById で応答が読み取られないのはなぜですか?

4

1 に答える 1

1

基本的なデバッグから

console.log(escape(response));

余分な文字があることを示しました:%0D%0Asavecouponarea1327

%0Dキャリッジリターン文字です。%0A改行文字です。

サーバー側のコードに余分な行があります。

于 2013-10-09T00:18:22.040 に答える