2 li8781169 li8781169 于 2015.06.01 14:02 提问

无法设置属性“innerHTML”的值: 对象为 null 或未定义
    function getdbxx(posturl, paramstr, spanid, inputid) {
        $.ajax({
            type : "post",
            url : posturl,
            dataType : 'json',
            data : 'portletConfigJson=${portletConfigJson}&'+paramstr,
            success : function(result) {
                if (result) {
                    //alert(result.num);
                    document.getElementById(spanid).innerHTML = result.num;
                    document.getElementById(inputid).value = result.url;
                } else {
                    document.getElementById(spanid).innerHTML = "-1";
                }
            },
            error : function() {
                document.getElementById(spanid).innerHTML = "-2";
            }
        });
    }

按照网上说法是html解析先后顺序问题。可是不论我把script放到最后执行,或者写个执行方法window.onload=function(),都不行。谁能帮忙解决下

4个回答

oyljerry
oyljerry   Ds   Rxr 2015.06.01 16:12

你这个document.getElementById(spanid)到底在页面中有没有存在

showbo
showbo   Ds   Rxr 2015.06.01 16:47

自己检查spanid,inputid都写对了没有,没有肯定出错了。。而且如果你的对象是通过事件触发添加到dom里面的,你还得和ajax获取数据后判断下对象是否生成。。

而且都导入了jquery干嘛还用原生的js?直接$('#'+spanid).html(result.num)

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.06.02 11:16

既然你说它为null了,肯定是赋值没有成功啊,看一下id啥的都有么,这个问题不难

linfenpan
linfenpan   2015.06.16 15:23

如果 document.getElementById(spanid);找不到存在的dom元素,就返回 null

而 null.innerHTML 显而是错的。

检查下,为什么 document.getElementById(spanid) 没找到元素吧

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!