作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试遍历一个字符串并使用其索引更改每个字符的颜色,但我一直收到错误。有帮助吗?
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<p id="text">jesus est le tout puissant</p>
<script>
var text = document.getElementById("text").textContent;
console.log(text);
var colors = ["#EF5350","#8BC34A","#69F0AE","#FFC107","#FFD600","#4E342E","#F44336","#E91E63","#9C27B0","#F50057"];
for(var i =0; i <= text.length; i++) {
text[i].style.color = colors[i];
}
</script>
</body>
</html>
最佳答案
您必须将字符与 DOM 元素区分开来。正如其他人所说,将每个字母包装在 <span>
中.
var element = document.getElementById('text');
var text = element.textContent;
console.log(text);
var colors = ["#EF5350","#8BC34A","#69F0AE","#FFC107","#FFD600","#4E342E","#F44336","#E91E63","#9C27B0","#F50057"];
var styledText = '';
for(var i =0; i < text.length; i++) {
styledText += '<span style="color:' + colors[i%colors.length] + '">' + text[i] + '</span>';
}
element.innerHTML = styledText;
<p id="text">jesus es le tout puissant</p>
一些注意事项:你想要i < text.length
, 不是 i <= text.length
.我还使用了 i%colors.length
作为colors
的索引所以当你用完时你会回到开始。
关于javascript - 如何遍历字符串的索引并更改每个字母的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45890746/
我是一名优秀的程序员,十分优秀!