let li = document.getElementsByClassName("oli"); let btnleft = document.getElementsByClassName("btnleft"); let btnright = document.getElementsByClassName("btnright"); let i = 0; let len = li.length; // 向右切换图片按钮 btnright[0].onclick = function (){ console.log(i) li[i].className = "oli"; i++; if (i>=len){ i = 0; } li[i].className = "on oli"; } // 向左切换图片按钮 btnleft[0].onclick = function (){ console.log(i) li[i].className = "oli"; i--; if (i<0){ i = 2; } li[i].className = "on li"; }上述js代码中点击btnleft为什么会报 Cannot set properties of undefined (setting 'className')
时间: 2024-02-14 11:10:44 浏览: 109
这是因为在向左切换图片的代码中,`li[i].className = "on li";` 中的 "li" 应为 "oli",即应该是 `li[i].className = "on oli";`,因为在 HTML 中元素的类名为 "oli",而不是 "li"。所以在代码中应该修改为:
```
// 向左切换图片按钮
btnleft[0].onclick = function (){
console.log(i)
li[i].className = "oli";
i--;
if (i<0){
i = 2;
}
li[i].className = "on oli";
}
```
这样就能正确地切换图片了。
相关问题
let login=document.getElementById('login'); let register=document.getElementById('register'); let form_box=document.getElementsByClassName('form-box')[0]; let register_box=document.getElementsByClassName('register-box')[0]; let login_box=document.getElementsByClassName('login-box')[0]; // 去注册按钮点击事件 register.addEventListener('click',()=>{ form_box.style.transform='translateX(80%)'; login_box.classList.add('hidden'); register_box.classList.remove('hidden'); }) // 去登录按钮点击事件 login.addEventListener('click',()=>{ form_box.style.transform='translateX(0%)'; register_box.classList.add('hidden'); login_box.classList.remove('hidden'); })解释
这段代码是用来实现一个登录和注册切换的功能,通过给登录和注册按钮添加点击事件,来控制表单框(form-box)的位置和显示状态。具体实现方式是使用了CSS3中的transform属性来实现页面的平移效果,同时通过添加和移除类名来控制登录和注册表单的显示状态。当点击注册按钮时,表单框向右平移80%,同时隐藏登录表单,显示注册表单;当点击登录按钮时,表单框向左平移0%,同时隐藏注册表单,显示登录表单。
let radioList = document.getElementsByClassName('img-select') radioList[0].checked = true
这是一段 JavaScript 代码,它的作用是将页面中 class 名称为 "img-select" 的第一个元素的选中状态设置为 true。具体来说,它找到页面中所有 class 名称为 "img-select" 的元素,然后将第一个元素的选中状态设置为 true。通常,这段代码用于对表单中的单选框进行设置。
阅读全文