我有一个表格。
我希望占位符中的所有“ *”标记都为红色。
我不在乎它是否会改变整个身体中的所有*,我不在其他地方使用它们。
我当然可以用*来做
但这只会使我的代码比以往更混乱,而且必须有一种更紧凑的方式。

我在“ 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/

这也将允许占位符在较旧的浏览器中工作,因为它不依赖于内置占位符。

10-06 12:31