【发布时间】:2021-06-23 18:58:31
【问题描述】:
我一直在尝试在我的项目中显示和隐藏密码功能,但仍然遇到 DOM 操作多个类的问题,我的想法是当我单击眼睛图标时,输入类型从密码更改为文本,这是我的代码
index.html
<div class="input">
<div class="password">
<i class="far fa-lock"></i>
<input type="text" class = "passwordForms" name="" value="" placeholder="OLD PASSWORD">
</div>
<i class="fas fa-eye passwordToggle"></i>
</div>
<div class="input">
<div class="password">
<i class="far fa-lock"></i>
<input type="text" class = "passwordForms" name="" value="" placeholder="NEW PASSWORD">
</div>
<i class="fas fa-eye passwordToggle"></i>
</div>
<div class="input">
<div class="password">
<i class="far fa-lock"></i>
<input type="text" class = "passwordForms" name="" value="" placeholder="CONFIRM PASSWORD">
</div>
<i class="fas fa-eye passwordToggle"></i>
</div>
app.js
const eyeIcon = document.querySelectorAll('.passwordToggle');
const passwordForms = document.querySelectorAll('.passwordForms');
function test(){
<!-- I'm not sure with 'this' -->
const type = this.getAttribute('type') === 'password' ? 'text' : 'password';
this.setAttribute('type', type);
this.classList.toggle('fa-eye-slash');
}
for (let i = 0; i < eyeIcon.length; i++){
eyeIcon[i].addEventListener('click',test)
}
我可以切换眼睛图标,但不能切换输入类型,我应该更改什么?
【问题讨论】:
标签: javascript html dom-events dom-manipulation