在 JavaScript 中更改某些文本的第一个字母的颜色
Changing the color of the first letter of some text in JavaScript
我有以下字符串:">*用户名"。
有没有办法在保持"用户名">部分不变的同时更改星号的颜色?
我决定使用适当的 DOM 方法编写一个答案来做到这一点,它不是最短的,但我不使用正则表达式或字符串连接和操作。
算法非常简单。
- 您必须选择包含要突出显示的文本的所有元素。
- 创建突出显示的星号。
- 将旧内容替换为第一个字符为星号的新内容。
这是JavaScript部分。
// Create the span containing the highlighted asterisk
var asterisk = document.createElement('span');
asterisk.className = 'highlight';
asterisk.appendChild(document.createTextNode('*'));
/*
* users is a NodeList in my case.
* Walk the users (teehee) and check if the first characer is an asterisk
*/
for (var i = 0; i < users.length; ++i) {
var user = users[i];
var text = user.textContent;
if (text.charAt(0) == '*') {
user.removeChild(user.firstChild);
user.appendChild(asterisk);
user.appendChild(document.createTextNode(text.slice(1)));
}
}
注意:我知道使用.textContent
的含义,如果您想支持IE<9,请填充它。
您还需要一个 CSS 类来定义突出显示的星号范围的外观。
这是一个你可以玩的JSFiddle。
你必须把它包装在一个包含元素中,一个真正基本的例子可能是:
var str = '*Username';
str = str.replace(/^'*(.*)/, '<span style="color:red">*</span>$1');
js小提琴
JavaScript 的方式
您可以使用 .charAt()
和 .slice()
方法来重新着色第一个字符(无论第一个字符是什么,也不管有多少个星号(:
var oldString = document.getElementById('element').innerHTML;
var newString = "<span style='color:red'>"
+ oldString.charAt(0)
+ "</span>"
+ "<span style='color:white'>"
+ oldString.slice(1)
+ "</span>";
document.getElementById('element').innerHTML = newString;
js小提琴在这里
仅限 CSS 的方式
如果你不想使用 JavaScript 或者 JavaScript 的方式对你来说似乎很长,那么根本不需要 JavaScript。但是,此方法要求星号(*
(不写在HTML标记中。以下代码将在所有内容之前添加一个红色星号,并带有class='required'
.required:before
{
color: red;
content: "* ";
}
js小提琴在这里
相关文章:
- 使用数据上的角度更改设置集合的第一个元素的动画
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- 字母计数:返回重复字母数最多的第一个单词
- 如何使用Javascript在HTML表中查找第一个空行
- 分页:如何用AJAX加载第一个页面
- 全局标志仅与第一个匹配项匹配的Regexp
- 访问ng repeat中的第一个项目
- 使用jQuery只返回选中复选框后的第一个表单元格值
- 使用jQuery插入HTML页面的第一个项目缺少结束标记
- 关闭第二个事件源上的第一个事件源's onopen方法
- 无法获取vis.js最后一个或第一个选定的网络节点
- 如何设置第一个手风琴面板关闭
- JS-颜色选择器只有第一个工作
- 获取图像的第一个像素颜色(JS/jQuery)
- 在 JavaScript 中更改某些文本的第一个字母的颜色
- 当改变背景颜色的html选择,第一个选项改变它
- 仅用javascript更改li中的每个第一个单词的颜色
- 将高库存导航器的颜色更改为与第一个系列相同
- 如果第一个下拉菜单用户只选择最喜欢的颜色蓝色或红色,我将如何选择宠物类型
- 如何禁用(或改变颜色)第二个下拉选项取决于第一个选择