2015-09-25 87 views
1

在过去,我使用下面的代码来获取数据占位符属性中的文本,并将其用作div的占位符文本。jQuery和CSS选择器

[contentEditable=true]:empty:not(:focus):before { 
    content:attr(data-placeholder) 
} 

这伟大的工作,但在我目前的项目,我们需要做同样的事情,除了它使用jQuery完全建立。我知道jQuery有.empty(),.before(),:not().focus()函数。通过jQuery选择器的工作方式,是否有可能像这样在jQuery选择器中使用CSS选择器?

var div = $([contentEditable=true]:empty:not(:focus):before); 

如果没有,那么在使用这么多函数时是否有更好的方法来做到这一点?

+0

不能使用':before'和':after' jQuery中。它们不是真正的元素。 – Barmar

+0

你想做什么?选择这些元素的目的是什么? – Amit

+0

@Amit我试图拿上面的CSS并使用jQuery重新创建它,以便我们可以继续在我们的项目中使用它。 – tylerbhughes

回答

3

简单的办法就是添加一个样式标签:

var rule ='[contentEditable=true]:empty:not(:focus):before {'+ 
    ' content:attr(data-placeholder)'+ 
'}'; 
$('head').append('<style>'+rule +'</style>');