为什么IE会抱怨这条js线?

时间:2011-10-29 20:39:13

标签: javascript jquery

为什么IE会抱怨这个javacript电话?

$.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百分比行,则错误消失。

任何想法为什么?

1 个答案:

答案 0 :(得分:2)

原因是变量data不包含您认为的变量。

这在IE中运行得很好:

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

如果您使用innerHTML创建了字符串,则根据浏览器的不同,它会有所不同。您将无法获得创建元素的原始HTML代码,而是浏览器从DOM元素重新创建HTML代码,并且每个浏览器都有不同的格式化HTML代码的方式。