javascript - 如果数据属性(HTML)=== javascript 中的输入文本,如何更改已写入输入的每个字母的 javascript 颜色?
问题描述
如果数据属性 === Javascript 中的输入文本,您能告诉我如何更改已写入(按正确顺序)输入列中的每个字母的颜色(绿色是正确的,红色是错误的) ?
我的意思是如果 data="word" 输入值="word"
当我写 w - 字母颜色为绿色时,字母颜色为红色。
wo -stay green else red;
wor - green else red;
word -green else red;
我的代码在这里:
let all = document.querySelectorAll('#input_Text')
all.forEach(element => element.addEventListener('input',(e)=>{
if(e.target.value === element.getAttribute('data-verb')){
element.style.border = "5px solid green"
}else{element.style.border = "5px solid red"};
}));
多谢
解决方案
如果元素的值String.prototype.startsWith()输入的文本,您可以使用Document.querySelectorAll()获取所有输入元素'input[data-verb]'
并附加一个input
事件以设置样式边框:
document
.querySelectorAll('input[data-verb]')
.forEach(el => el.addEventListener('input', ({ target: { value }}) => {
const color = el.getAttribute('data-verb').startsWith(value) ? 'green' : 'red'
el.style.border = `5px solid ${color}`
}))
<input type="text" data-verb="word">
推荐阅读
- hive - Talend (7.0.1) - 无法在运行时修改 mapred.job.name
- .net - 带有 c# 和访问数据库的 Windows 应用程序
- angular - 将材质主题应用于离子角度的 ngx-datatable
- react-native - iOS 平台导入 axios 报错
- tinymce - 弹出窗口的 TinyMCE 焦点问题
- c++ - 如何在组合函数中使用 boost::asio::defer()?
- wordpress - 如何获取当前国家的 tag_id 链接?
- angular - 可以在 Angular 服务构造函数中调用 HTTP 端点吗?
- ssl - 在 JHipster 中配置 SSL
- xamarin.forms - 可绑定属性更新未使用自定义渲染