2011-10-29 48 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會引發異常。

這裏是我的錯誤:

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

如果我刪除了var百分比線的錯誤消失。

任何想法爲什麼?

+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

@保羅 - 沒有任何意義的是,你不告訴我們什麼是例外。 – ChaosPandion

+0

@Paul:答案的這一部分不適用於你問題的那部分,因爲你在我寫下答案後添加了...... – Guffa

相關問題