2013-10-09 115 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

相关问题