JS脚本运行报错,被调函数的形参总是提示未定义

carl.he 发布于 2013/01/16 10:04
阅读 3K+
收藏 0
// JavaScript Document


function setstyle(){
	if (!document.getElementsByTagName ) return false;
	
	var header = document.getElementsByTagName("h1");
	for(var i=0; i<header.length; i++)
	{
		var elem = getNextnode(header[i].nextSibling);
		elem.style.fontWeight = "bold";
		elem.style.color = "#aa339a";
	}
}

function getNextnode(nod){
	if (nod.nodeType ==1)
	{
		return nod;
	}
	else return (getNextnode(nod.nodeSibling) );
	
}

addLoadEvent(setstyle);
	
总是报错nod 未定义
 求解??
加载中
0
carl.he
carl.he

引用来自“JavaNewPer”的答案

JS属于弱类型语言,她这个错误提示。不是特别的准确!你写 nod.nodeSibling ,在编译器那边这个nod不是你上面穿进来的nod.它把他当做一个function看。但是没有这个function.固然也没有这个function下面的nodeSibling,所以就报错为 nod未定义。这样你应该明白了吧。
谢谢你的耐心解答
JavaOlder
JavaOlder
不客气,为了祖国的IT事业!
0
JavaOlder
JavaOlder

你下面传nod是怎么写的? 事件=“ getNextnode(this)”;???还是?

还有你nod的引用是在if里面。我想你应该懂了~

carl.he
carl.he
我知道问题在哪里了 一个很低级错误: 21行nod.nodeSibling 应该是nod.nextSibling ~~ 然后就能正确运行了 ,不懂为什么那个拼错了会报nod未定义的错
0
JavaOlder
JavaOlder
JS属于弱类型语言,她这个错误提示。不是特别的准确!你写 nod.nodeSibling ,在编译器那边这个nod不是你上面穿进来的nod.它把他当做一个function看。但是没有这个function.固然也没有这个function下面的nodeSibling,所以就报错为 nod未定义。这样你应该明白了吧。
返回顶部
顶部