javascript - 如何使用 JS 在 HTMl 中选择元素,为什么在这种情况下函数不起作用?
问题描述
嗨,我正在做一个香草 JS 练习,我遇到了一些我不知道为什么的功能的问题。编辑一直说“无法读取未定义的属性”,但我使用了正确的选择器和方法,所以我不明白出了什么问题。这是代码
js:
function opena(){
var eleme= document.getElementsByClassName(".left")[0]
var elemo = document.getElementsByClassName(".right")[0]
eleme.classList.add("applejuice");
elemo.classList.add("pearjuice")
}
HTML:
<body>
<button onClick="opena()">press</button>
<div class="pack">
<div class="left" >A</div>
<div class ="right">B</div>
</div>
</body>
解决方案
由于您使用的是document.getElementsByClassName()
,因此您不需要.
在每个类名之前加上.left
or .right
。你可以直接使用如下:
document.getElementsByClassName("left")
document.getElementsByClassName("right")
function opena() {
var eleme = document.getElementsByClassName("left")[0]
var elemo = document.getElementsByClassName("right")[0]
eleme.classList.add("applejuice");
elemo.classList.add("pearjuice")
}
.applejuice { color: red; }
.pearjuice { color: orange; }
<body>
<button onClick="opena()">press</button>
<div class="pack">
<div class="left">A</div>
<div class="right">B</div>
</div>
</body>
附带说明一下,.
如果您使用document.querySelector()
或document.querySelectorAll()
喜欢,则在需要类名之前:
function opena() {
var eleme = document.querySelectorAll(".left")[0]
var elemo = document.querySelectorAll(".right")[0]
eleme.classList.add("applejuice");
elemo.classList.add("pearjuice")
}
.applejuice { color: red; }
.pearjuice { color: orange; }
<body>
<button onClick="opena()">press</button>
<div class="pack">
<div class="left">A</div>
<div class="right">B</div>
</div>
</body>
推荐阅读
- android - 推广封闭测试轨道时,Google Play 会自动发布到生产环境吗?
- java - 我可以默认将方法的参数设为 null 吗?
- assembly - 在 x86 程序集中生成伪随机字符
- python - 如何保存 np.append 成为像这张图片一样的列
- ios - 如何在 Swift 的 tableview 中添加 AdMob Native 广告(使用故事板)
- c# - 用文本替换 if number 语句
- android - C++,Android NDK:如何将我的原始音频数据正确保存到文件并再次加载
- recursion - 动态规划解决fibwords问题
- angular - 如何在 Web 组件中使用服务
- java - 如何在我的 2D Array 程序中修复此变量错误?