我有一张表格。 我希望占位符中的所有'*'标记都是红色的。 我不在乎它是否会改变整个身体的'*',我不会在其他地方使用它们。 当然我可以用*做, 但它只是让我的代码看起来比以往更加混乱,并且必须有一个更紧凑的方式。
我在'head'和'body'中尝试过这个jQuery,但它不起作用:
jQuery.fn.highlight = function (str, className) {
var regex = new RegExp(str, "gi");
return this.each(function () {
this.innerHTML = this.innerHTML.replace(regex, function(matched) {return "<span class=\"" + className + "\">" + matched + "</span>";});
});
};
$("input").highlight("*","highlight");
这是我的一个表格:
<input type="text" class="text" name="phone" placeholder="*Puhelin" />
答案 0 :(得分:2)
无法在属性中设置单个字符的样式,甚至无法在输入中设置单个字符的样式。
然而,有一种方法可以实现这一目标。
使输入的背景透明,并在包含占位符的输入后面放置一个元素。现在,您所要做的就是将*
字符包裹在一个范围内并将其设置为红色,然后根据需要显示和隐藏占位符元素。
概念证明:http://jsfiddle.net/Ay45T/
这也允许占位符在旧浏览器中工作,因为它不依赖于内置占位符。