JavaScript原生获取当前页面中元素的数量

发布于 2021-12-02 11:08:41 字数 1141 浏览 710 评论 2

 这是js代码

window.onload=function(){
	waterfull('main','box');
}
function waterfull(parent,box){
	//将main下的所有class为box的元素取出来
	var oParent=document.getElementById(parent);
	var oboxs=getele(oParent,box);
		console.log(oboxs.length);
	}
function getele(Parent,clsname){
	var boxarr=new Array();//class为box的元素集合
	var oElements=Parent.getElementsByClassName('*');
	//遍历所有的子元素,取出所有class为box的元素,并且放入数组中;
	for(i=0;i<oElements.length;i++){
		if(oElements[i].className==clsname){
			boxarr.push(oElements[i]);
		}
	}
	return boxarr;
}

这是html

<div id="main">
			<div class="box">
					<div class="pic">
						<img src="./images/1.jpg" />
					</div>
			</div>
			<div class="box">
					<div class="pic">
						<img src="./images/2.jpg" />
					</div>
			</div>
</div>

新手求解答,我在控制台打印出来为什么显示0啊!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦里兽 2021-12-04 09:37:01

不能用 * 号当通配符,得写具体的classname,你还不如直接写box,这样就会找到两个,要么使用var oElements=Parent.querySelectorAll("*");

月亮是我掰弯的 2021-12-02 12:26:23

一步步log下,就知道哪错了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文