2011-09-30 55 views
3

我已經做使用jQuery以下簡單的CSS選擇器,但我不能:jQuery的CSS選擇器的背景

"#test > *" 

我已經在很多方面嘗試,但我不能這樣做!

$("#jqt > *") 

$('*',$("#jqt")).css() 

最後一個似乎工作,但我意識到,這shoudnt!

我應該怎麼做這個簡單的選擇增加一個非常簡單的CSS屬性(background-imagefont-family)????

在此先感謝

+0

你試圖完成的結果是什麼? –

回答

7

而不是$("#jqt > *")嘗試$("#jqt").children()

0

這工作,如果你想選擇直接孩子:

$("#jqt > *").css({ 'background-image' : 'url(...)', 'font-family' : 'arial'}) 

jsFiddle

+0

不起作用:http://jsfiddle.net/Qy33d/ –

+0

@pinouchon,實際上它確實工作夥計。 – Gabe

+0

這比直接的孩子選擇更多。您正在選擇所有子元素。 –

0

我猜你正在嘗試僅將css應用於#jqt的「直接子女」。

這裏有個竅門,以避免被應用到子子元素的風格:

HTML:

<div id="jqt"> 
    <a>link</a> 
    <p>paragraph</p> 
    <div>div</div> 
    <div class="no_inherit"> 
     <a>sub link</a> 
     <p>sub paragraph</p> 
     <div>sub div</div> 
    </div> 
</div> 

CSS:

.mystyle { 
    background-image: url(img.png); 
    font-family: "courier"; 
} 

jQuery的:

$('#jqt').children().not(".no_inherit").addClass('mystyle'); 

如果刪除not(".no_inherit"),則將CSS應用於#jqt > div中元素的元素,以便對所有元素進行樣式設置。

這裏的小提琴:http://jsfiddle.net/7AM5Z/1/