2013-10-09 157 views
0

好的,我的腳本允許我在textarea元素中輸入文本並將其添加到列表中的一個li元素,其ID爲「Glist 」。不僅將文本添加到添加到有序列表中的每個li,還添加了下面的其他內容,並且它們都只是使用CSS顯示其他圖像。其中一個類「Selimg」顯示一個按鈕的精靈圖像,其中顯示「select」。現在,添加到我的ol中的每個li元素都具有以下所有元素以及類。所以每個li元素都會有一個帶有「Selimg」類的div,它顯示一個按鈕的圖像,例如說select。當我用類Selimg單擊這個div時,一個名爲「Selected」的新類將被添加到div中,它將更改li的背景顏色以指示它已被選中。問題是,我只想將「Selected」類添加到我單擊的Selimg類的div中,而不是所有具有「Selimg」類的li元素。我該如何使用onclick事件處理程序或使用js或jquery的其他方式來做到這一點?這裏的HTML:如何定位與所有其他列表項目具有相同類別的特定列表項目

<ol id="GList"> 
<li class="MyList"> 
<p class="bulletp"></p> 
<!--This Selimg class displays an image of a button that says select--> 
<div class="Selimg"></div> 
<!--When a user presses this select button, I want to append a class only to the specific li element the user has pressed the select button on. --> 
<div class="edit1"></div> 
<div class="Del"></div> 
<div class="progress"></div> 
<div class="ShowMore"></div> 
<div class="CheckedGoal"></div> 
<div class="PCompetePercent"></div> 
<div class="ShowMoreBlock"></div> 
<div class="goalTxt"></div> 
</li> 
</ol> 

回答

1

在按一下按鈕,就可以使用.closest()找到祖先li元素

$('.Selimg').click(function(){ 
    $(this).closest('li').addClass('someclasss') 
    //or $(this).parent().addClass('someclasss') since the li is the parent of the button 
}) 

演示:Fiddle

+0

啊,不錯。謝謝。但現在問題是他們都可以被選中。我怎麼能這樣做,所以一旦我選擇另一個李項目,所有其他李元素都沒有被選中。我想我知道一種方式,但我相信我沒有想到更簡單的解決方案。對不起,我沒有在我的文章中包含這個。我沒有想到它,直到我嘗試了你的小提琴。 – Brandon

+0

@Brandon見http://jsfiddle.net/arunpjohny/fSMDv/2/ –

+0

非常感謝。 – Brandon

相關問題