2016-08-19 65 views
0

我試圖用jQuery改變單選按鈕的背景顏色。我發佈了下面的CSS,但在jQuery中,我需要轉義特殊字符(見下文),但它仍然無法工作。使用jQuery選擇器的CSS,轉義特殊字符

#opt5 > [type="radio"]:not(:checked) + label:before, 
#opt5 > [type="radio"]:checked + label:before { 
    background: #F7DC6F; 
} 

$("\\#opt6 \\> \\[type\\=\\'radio\\'\\]\\:not\\(\\:checked\\) \\+ label\\:before").css({ "background": "red" }); 
$("\\#opt6 \\> \\[type\\=\\'radio\\'\\]\\:checked \\+ label\\:before").css({ "background": "red" }); 
+3

jQuery不支持pesudo元素AFAIK – Aziz

+2

爲什麼要跳過特殊字符? '$('#opt5> [type =「radio」]:not(:checked)+ label')'是一個完整的語句,是@Aziz所說的,你不能訪問僞元素 – empiric

回答

0

這與選擇器語法無關。 jQuery的選擇器引擎旨在支持CSS選擇器(無論如何)。通過逃避它,你剝奪了它所有意義的選擇器,將它變成與你所期望的完全不同的東西。

這一切都與pseudo-elements cannot be selected by jQuery這一事實有關。您有許多選項,這些選項都包含在鏈接中。我強烈建議使用類名稱方法。