2011-10-29 5 views
-2

なぜIEはこのjavacript呼び出しについて文句を言いますか?なぜIEはこのjs行について文句を言うのですか?

$.get("profile_completeness.php?id=<?php echo($user_id); ?>", function(data) { 
    var percentage = data.match(/id="percentage_complete" value="(\d+)"/)[1]; 
    alert(percentage); 
}) 

これはChromeとFFでは正常に動作しますが、IEでは例外がスローされます。私は、エラーがなくなっているのvarパーセントの行を削除する場合

Unable to get value of the property '1': object is null or undefined. 

:ここ

は私が取得エラーです。

なぜでしょうか?

+7

例外は何ですか? – Randomblue

+0

'data'を定義します。 –

答えて

2

なぜなら、変数dataには、あなたが考えると思われるものが含まれていないからです。

これはIEで正常に動作します:

var data = 'id="percentage_complete" value="42"'; 
var percentage = data.match(/id="percentage_complete" value="(\d+)"/)[1]; 
alert(percentage); 

あなたがinnerHTMLを使用して文字列を作成した場合、それはブラウザに依存しsomehwat異なります。要素が作成された元のHTMLコードは取得されません。代わりに、ブラウザはDOM要素からHTMLコードを再作成し、各ブラウザにはHTMLコードのさまざまな書式設定方法があります。

+0

私はあなたの答えを理解していないと思います。私のPHP関数から返されたデータは、ブラウザによって異なった形式になっていますか?それは意味をなさない。 – Paul

+0

@Paul - 例外が何であるか教えてくれないのは意味がありません。 – ChaosPandion

+0

@Paul:回答のその部分は、あなたの質問のその部分には適用されません。答えを書いた後に追加しました。 – Guffa

関連する問題