Javascript CSS-选择特定字符的选择器?

Javascript CSS-选择特定字符的选择器?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一张表格。 我希望占位符中的所有“*”标记都是红色的。 我不在乎它是否会改变整个身体的“*”,我不会在其他地方使用它们。 当然,我可以用*, 但这只会让我的代码看起来比以前更混乱,而且必须有一种更紧凑的方式 我在“head”和“body”中尝试了这个jQuery,但没有成功: jQuery.fn.highlight = function (str, className) { var regex = new RegExp(str, "gi");

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

我在“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");
jQuery.fn.highlight=函数(str,className){
var regex=新的RegExp(str,“gi”);
返回此。每个(函数(){
this.innerHTML=this.innerHTML.replace(正则表达式,函数(匹配){return”“+matched+”“;});
});
};
$(“输入”)。突出显示(“*”,“突出显示”);
这是我表格的一部分:

 <input type="text" class="text" name="phone" placeholder="*Puhelin" />

无法在属性中设置单个字符的样式,甚至无法在输入中设置单个字符的样式

然而,有一种方法可以做到这一点

使输入的背景透明,并在输入后面放置一个元素,以保存占位符。现在,您只需将
*
字符包装在一个span中,并将其样式设置为红色,然后根据需要显示和隐藏占位符元素

概念证明:


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

css不能以字符为目标。占位符中的字符不能单独设置样式。输入中的字符不能单独设置样式。出现问题的原因是您使用的是
占位符
属性而不是标签。HTML5 CR说:“占位符属性不应该被用作标签的替代品。”这个解决方案比我的CSS解决方案复杂得多,但如果这是旧浏览器中必须具备的功能,你就必须这样做。我觉得他想要给单个字符上色,不是整个占位符。不过我更喜欢这样做,因为这样也可以使文本的翻译更容易。我想他刚才提到了作为CSS选择器的
*
。如果他只想要那个红色字符,我的CSS解决方案肯定行不通。aa OP已经澄清了这是他想要的,所以我将删除我的答案。好吧,我纠正了他问题中的一个错误。降价语法将他的“*”转换为“不太适合我的代码”。我想我做错了什么。JSFiddle似乎讨厌我的表单,尽管它在这里工作得很好:JSFiddle: