未捕获的TypeError

时间:2011-05-11 12:24:12

标签: javascript jquery html browser

任何人都可以解释这些错误是什么吗?

  

未捕获的TypeError:无法设置   属性'innerHTML'为null

     

未捕获的TypeError:无法读取   属性'style'为null

     

Uncaught SyntaxError:意外的令牌   非法

     

未捕获的TypeError:对象#   没有方法'dispatchEvent'

这是我的测试Website

2 个答案:

答案 0 :(得分:5)

在页面的某个位置,您有:

function display_price(price, oid)
{
    ...

    element = document.getElementById(oid);
    if (valor != 'NaN' && valor != null && valor != '')
    {
       element.innerHTML = valor + money_simbol;

最后一行导致错误,因为element为空。您应该为if()添加一个条件:即更改此行:

if (valor != 'NaN' && valor != null && valor != '')

到此:

if (element && valor != 'NaN' && valor != null && valor != '')

换句话说,始终在访问其属性之前检查函数的返回值是一个好习惯。

答案 1 :(得分:0)

您调用函数display_price传递它尚不存在的span ID。

更改此行:(在代码中出现两次)

display_price('510', 'products_price_id');

改为:

window.onload = function() {
   display_price('510', 'products_price_id');
};

这将等到页面加载后再尝试查找元素,从而解决您的错误。