开发者社区> 问答> 正文

有关于getElementsByTagName('*')的问题?报错

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>自推getElementByClassName</title>

<script>
window.onload=function (){
	
	var start=getElementsByClassName('box');
	
	var oUl1=document.getElementById('ul1');
	
	var oUl2=document.getElementById('ul2');
	
	function getElementsByClassName(className){
	
		var allElements=oUl1.getElementsByTagName('*');
		
		var arr=[];
		
		for(var i=0;i<allElements.length;i++)
			{
				allElements[i];
				
				/*if(allElements[i].className=='box')
					{
						arr.push(allElements[i]);
						}*/
						
				var aClassName=allElements[i].className.split(' ');
				
				for(var j=0;j<aClassName.length;j++)
					{
						if(aClassName[j]==className)
							{
								arr.push(allElements[i]);
								
								break;
								};
						};
				
				};
				
				return arr;
				
	};
	
	};
</script>
</head>

<body>
<ul id="ul1">
	<li class="box">11111</li>
    <li>22222</li>
    <li class="box box1">33333</li>
    <li>44444</li>
</ul>
<ul id="ul2">
	<li class="box">11111</li>
    <li>22222</li>
    <li class="box box1">33333</li>
    <li>44444</li>
</ul>
</body>
</html>
 



为什么

var allElements=oUl1.getElementsByTagName('*');

会报错?




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

    哪个<spanstyle="font-family:Consolas,'BitstreamVeraSansMono','CourierNew',Courier,monospace;font-size:14px;line-height:15.4px;background-color:#FFFFFF;">TagName是*?

    JS里面变量的声明会提升,但是赋值语句不提升.

    所以start赋值时oUl1还没初始化,报错.

    2020-06-10 14:10:54
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载