如果设置了jQuery,如何更改:-moz-placeholder颜色?

我遇到了一个问题,如果输入字段的背景颜色发生变化,占位符颜色会混入太多。

我已经解决了可读的文本颜色问题,因此它正确地返回正确的浅色或深色。

我不能为我的生活弄清楚如何将CSS属性设置为特定输入框的计算颜色。 请给一些指导?

input:-moz-placeholder { color: #BBBBBB; } input::-webkit-input-placeholder { color: #BBBBBB; } 

返回的颜色是#222222$('#input').css()调用不起作用,因为它直接针对元素CSS,而不是元素。

在这个解决方案中,我首先动态地将样式块附加到页面加载的:

 // add style block to the  with default placeholder css on page load var defaultColor = 'BBBBBB'; var styleContent = 'input:-moz-placeholder {color: #' + defaultColor + ';} input::-webkit-input-placeholder {color: #' + defaultColor + ';}'; var styleBlock = ''; $('head').append(styleBlock); 

然后,要更改占位符文本颜色,我只需更新样式块的内容:

 var randomColor = Math.floor(Math.random()*16777215).toString(16); styleContent = 'input:-moz-placeholder {color: #' + randomColor + ';} input::-webkit-input-placeholder {color: #' + randomColor + ';}' $('#placeholder-style').text(styleContent); 

看看jsFiddle:

使用jQuery更改占位符文本颜色