首页 新闻 会员 周边

立刻执行匿名函数报错的问题

0
悬赏园豆:50 [已解决问题] 解决于 2014-12-27 17:23

(function () {
function $(id) {
return document.getElementById(id);
}

function alertNodeName(id) {
alert($(id).nodeName);
}

window['myNamespace'] = {};//创建属性并为此属性赋值
window['myNamespace']['showNodeName'] = alertNodeName;
})();

myNamespace.showNodeName('txtTest');

报错:Uncaught TypeError: Cannot read property 'nodeName' of null

如果不立刻执行就不报错,我在浏览器控制台执行就没有报错

js
学弱的主页 学弱 | 初学一级 | 园豆:54
提问于:2014-12-27 16:44
< >
分享
最佳答案
0

你考虑过你的元素不存在吗?如果$(id),返回null,那么访问nodeName就会报错了。估计你这代码是放在head里面的吧。

收获园豆:50
幻天芒 | 高人七级 |园豆:37175 | 2014-12-27 17:21

哦,对哦,我是在头部引用的脚本,元素还没创建呢

学弱 | 园豆:54 (初学一级) | 2014-12-27 17:22

@学弱: :)

幻天芒 | 园豆:37175 (高人七级) | 2014-12-27 17:25
其他回答(1)
0
alert($(id).nodeName);

这里nodeName哪里来的???$(id)是一个方法啊

隔壁老王来了 | 园豆:99 (初学一级) | 2014-12-27 16:54

$(id)这个方法不是返回了一个return document.getElementById(id);了吗,nodeName js自带的啊。

难道不对吗?

支持(0) 反对(0) 学弱 | 园豆:54 (初学一级) | 2014-12-27 16:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册