2013-06-12 163 views
-1

我試圖選擇按鈕上方的列表項並將其父母的background-color更改爲紅色。jQuery select LI元素

<li>red bg on click <input class="addtocart" value="press" name="button"></li> 
    <li>red bg on click <input class="addtocart" value="press" name="button"></li> 
    <li>red bg on click <input class="addtocart" value="press" name="button"></li> 
    <li>red bg on click <input class="addtocart" value="press" name="button"></li> 

的jQuery至今:

$(document).ready(function() { 
    $(".addtocart").click(function(){ 
    $('li').parent().css('background-color', 'red'); 
    }); 
}); 

從我可以看到它看起來是正確的,但它似乎正在改變不同元素的background-color

感謝

+0

「我想*選擇列表項*按鈕上方,*改變其父母*背景顏色。」對不起,您正嘗試更改'li'或父'ol'或'ul'的'background-color'? (你的句子的構造方式使得*看起來像主題應該是'li'的父類,但是你的HTML只顯示'li'元素。) –

回答

4

使用this

$(this).parent().css('background-color', 'red'); 
1

你的選擇是錯誤的。嘗試使用this當前元素

當您使用$('li')這將適用於所有li元素

$(this).parent().c.... 
4

嘗試:

$(document).ready(function() { 

     $(".addtocart").click(function() 
      { 
      $(this).closest('li').css('background-color', 'red'); 
      } 
    ); 
}); 
+0

有沒有反正我可以選擇其中的實際列表項,因爲在我的工作項目中它有更深的結構? – Brent

+0

看到更新的答案,使用最接近() –

+0

awseome非常感謝:) – Brent

1

您需要當前點擊的元素

$(this).parent().css('background-color', 'red'); 

演示:Fiddle

1

試圖改變這樣的:

$(this).parent().css('background-color', 'red');