2015-09-25 126 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>');