我有一个表格。
我希望占位符中的所有“ *”标记都为红色。
我不在乎它是否会改变整个身体中的所有*,我不在其他地方使用它们。
我当然可以用*来做
但这只会使我的代码比以往更混乱,而且必须有一种更紧凑的方式。
我在“ 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" />
最佳答案
无法在属性中设置单个字符的样式,甚至无法在输入中设置单个字符的样式。
但是,有一种方法可以完成此操作。
使输入的背景透明,并在输入后面放置一个将保留占位符的元素。现在,您要做的就是将*
字符包装成一个跨度并将其样式设置为红色,然后根据需要显示和隐藏占位符元素。
概念证明:http://jsfiddle.net/Ay45T/
这也将允许占位符在较旧的浏览器中工作,因为它不依赖于内置占位符。