2013-08-31 84 views
0

我需要以下問題的幫助。我需要改變css屬性(背景),取決於父類的類名。這是我的代碼。根據父類更改css

HTML

<div id="types"> 
    <ul> 
    <li class='car'><a href='#'>Car</a></li> 
    <li class='bus'><a href='#'>Bus</a></li> 
    </ul> 
</div> 

我需要改變a標籤background-image。如果我在li.car,那麼背景將是images/car.png,如果在li.bus,那麼images/bus.png

我找不出問題在哪裏。這是我如何開始的,而且這是有效的。

$('#types ul li a').css('background', "url('./images/skills/cooking.png') 
    center center no-repeat"); 

但是,當我將其更改爲類似的東西,它不會工作:

$('#types ul li a').css('background', 
    "url('./images/skills/'+($(this).parent().attr('class'))+'.png') 
    center center no-repeat"); 

有什麼不對?

回答

1

除非您特別調用evalFunction構造函數,否則引號內的代碼將不會執行。嘗試在報價外面碰撞它,它應該工作。

$('#types ul li a').each(function() { 
     $(this).css('background', "url('./images/skills/" + ($(this).parent().attr('class')) + ".png') center center no-repeat"); 
    }); 
+0

我在那裏寫了糟糕的報價。我有這個代碼,但它不起作用。 :/ –

+0

啊,你需要爲'$(this)'創建一個上下文。我不幸在手機上,所以我不能完全有幫助,但如果你使用'.each'並改變CSS,它應該可以工作。 '$(「#types ul li a」)。each(function(){$(this).css();});' – AdrianCooney

+0

你是最棒的!非常感謝:) –