我是编程新手,我想了解为什么我可以以某种方式访问某些元素,为什么不能以相同的方式访问其他元素。
有代码:
const cImg = document.querySelectorAll('#cImg');
console.log('c :', cImg);
console.log('element : ', cImg['0'].offsetHeight);
cImg.forEach(element => {
console.log('e :', element.clientWidth);
});
我在console.log中看到“ cImg”,元素offsetHeight
和clientWidth
如果我尝试在forEach
中登录ofsetHeilght,则会出现此错误
但是如果我这样做是这样的:cImg['0'].offsetHeight
我的显示正确为“ 399”
并且如果我想在forEach
中看到元素“ clientWidht”,则显示为“ 298”
我不明白为什么,因为两个元素都在“ cImg数组”中。
有人发了言吗?
非常感谢。
答案 0 :(得分:2)
[编辑]
要通过javascript进入元素中的CSS,您需要通过element.style
。
尝试
element.style.offsetHeight
[edit 2]不,这不是因为要获取CSS就是element.style.height和javascript无法获取CSS代码。星期六晚上酒过多。 :P
[编辑2]
function displayWidth() {
const cImg = document.querySelectorAll('.cImg');
console.log('c :', cImg);
if (cImg.length) {
console.log('element : ', cImg[0].offsetHeight);
cImg.forEach(element => {
console.log('e :', element.clientWidth);
});
}
}
<body onload="displayWidth()">
<div class="cImg">
askldajsldkjasdklasd
</div>
<div class="cImg">
askldajsldkjasdklasd
</div>
<div class="cImg">
askldajsldkjasdklasd
</div>
<div class="cImg">
askldajsldkjasdklasd
</div>
</body>
未经测试,但每个元素只能具有各自的唯一ID(如果有)。您可以将querySelectorAll使用的是类(以及其他东西)。因此,一群人中的每个人都有自己唯一的名称,但是所有人都属于humans
类。将id="cImg"
更改为class="cImg"
,并改用querySelectorAll(".cImg")
。