我想把下面的代码改为javascript:
$(document).ready(function() {
$('.fa-eye, .fa-eye-slash').click(function() {
$(this).toggleClass('fa-eye fa-eye-slash');
var input=$(this).parent().find('input');
if(input.attr('type')=='password') {
input.attr('type', 'text');
}else input.attr('type', 'password');
});
});
它的作用是当你点击一个"眼睛图标"时,它会将该图标更改为"眼睛斜线图标",并将同一div中的密码字段更改为文本,所以基本上是切换密码/文本。
由于这是我目前唯一使用的javascript,我认为只为此包含jQuery或ZeptoJS是多余的,这可能需要几行javascript就可以完成。
请注意:这需要应用到多个字段,这就是为什么我选择不使用ID。
2条答案
按热度按时间eoxn13cs1#
以下是为使其不使用jQuery而仅依赖普通JS和Web API(https://developer.mozilla.org/en-US/)而进行的更正:
.addEventListener()
将冒泡事件处理程序添加到元素DOMContentLoaded
事件而不是$(document).ready()
.querySelectorAll()
和.querySelector()
来选择元素,而不是使用$
函数.classList.toggle()
而不是.toggleClass()
event.target
而不是$(this)
.getAttribute()
和.setAttribute()
,而不是attr()
.forEach()
以迭代返回元素的数组kb5ga3dv2#
你可以用普通的JS方法来做,看这个代码片段:
注意,jQuery也是Javascript,尽管Javascript不一定是jQuery。