2013-07-13 145 views
0

我在jQuery上的net.tuts教程之後。我有問題與jQuery兒童選擇方法。我對以下功能的理解可以改變兒童的顏色,但它不止一級地將所有列表元素的顏色改變爲紅色。我做錯了什麼?我已經看到相同的腳本在視頻教程中工作得很好。下面是代碼jQuery兒童方法選擇孫輩

<ul class="color_change"> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    <li> 
     <ul> 
      <li>sub item</li> 
      <li>sub item</li> 
     </ul> 
    </li> 
</ul> 

<script> 
    $('ul.color_change').children('li').css('color','red'); 
</script>` 
+1

這是因爲CSS顏色從其父繼承 –

+1

烤是絕對正確的。把一個CSS顏色你的李(其他然後紅色) 檢查這個小提琴.. [http://jsfiddle.net/Z9BC6/] 不要糊塗! –

+0

你的小提琴不起作用,但是我指出了我從教程中遺漏的東西,那就是設置底色。 – user1986244

回答

5

你可以使用:

DEMO

$('ul.color_change').children('li').not(':has(ul)').css('color','red'); 

的其他方式將設置紅色爲所有第一級子:

DEMO 2

$('ul.color_change').find('ul').css('color','black').end().children('li').css('color','red'); 

但更好的是隻使用CSS規則:

DEMO 3

ul.color_change > li{color:red} 
ul.color_change > li > ul{color:black} 
+0

+1真棒:) –

+0

我給你一點時間和解釋不同的方法。最後,我再次看了教程,並且你說得對「從父母繼承的css顏色」。我忘了教程中的一點,即添加基本顏色li {color:black};它會解決這個問題。謝謝 – user1986244