开发者社区> 问答> 正文

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

// 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 未定义
 求解??

展开
收起
爱吃鱼的程序员 2020-06-22 22:15:06 701 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    引用来自“JavaNewPer”的答案

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

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

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

    我知道问题在哪里了一个很低级错误:21行nod.nodeSibling应该是nod.nextSibling~~然后就能正确运行了,不懂为什么那个拼错了会报nod未定义的错JS属于弱类型语言,她这个错误提示。不是特别的准确!你写nod.nodeSibling,在编译器那边这个nod不是你上面穿进来的nod.它把他当做一个function看。但是没有这个function.固然也没有这个function下面的nodeSibling,所以就报错为nod未定义。这样你应该明白了吧。
    2020-06-22 22:15:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载