javascript - CSS和/或Javascript中给定文本中俄语字母表的每个字符的不同颜色

标签 javascript html css

我正在尝试通过按单个字符为文本着色来测试“诱发联觉”。俄语字母表中的每个字符都应映射到一种颜色,例如A是红色,B是蓝色等等,所以总共有33种颜色。这个过程应该是自动的。

我的想法是将整个文本放在 div 中元素并在 Javascript 中获取它,然后将每个字符分开并放置一个 <span class="letter">用正确的字母围绕它,所以对于单词“два”,最终文本将是这样的:

<div class=text>
    <span class="д">д</span><span class="в">в</span><span class="а">а</a>
</div>

问题是,是否有更好和/或更短的方法来做到这一点?我想一个足够大的文本甚至会使浏览器崩溃。

最佳答案

虽然您可以轻松地用 HTML 中的 span 包裹每个字母,但如果有很多字母,下面的解决方案会有所帮助,否则如果您想节省时间,请在控制台中运行此功能以立即将 span 包裹到每个字母一个类名。

function addClassToLetters(element) {
    // runs if the passed element has no children elements in it.
    if (!element.children.length) {
        return element.innerHTML.replace(/(.)/g, function (x) {
            return "<span class='" + x + "'>" + x + "</span>";
        });
    }
    else{
        // do something if the element has child elements in it
        // or return the original html
    }
}

关于javascript - CSS和/或Javascript中给定文本中俄语字母表的每个字符的不同颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539342/

相关文章:

jquery - 更改选项卡式内容部分中选定选项卡的外观

html - 转盘不转

javascript - 如何防止页面在发布表单后重新加载?

javascript - 单击带有 window.onbeforeunload 的链接时出现问题

php - javascript 字符串变量的字符限制

javascript - 制作自定义范围 slider

javascript - 我不希望逗号后的空格固定宽度 - 最佳做法?

html - Bootstrap - 选择和按钮在一行中彼此相邻

javascript - 如何解决移动网站 map 缩放和页面缩放冲突?

css - 在手机中禁用悬停