如何定位与所有其他列表项具有相同类的特定列表项

时间:2013-10-09 07:21:41

标签: javascript jquery html

好的,所以我的脚本允许我在textarea元素中输入文本,并将其添加到ID为“Glist”的有序列表中的li元素。不仅将文本添加到我添加到有序列表的每个li中,而且还添加了下面的附加内容,它们都只是使用CSS显示其他图像。其中一个类“Selimg”显示一个按钮的精灵图像,上面写着“选择”。现在我添加到我的ol的每个li元素都包含下面的所有元素以及类。因此每个li元素都有一个带有“Selimg”类的div,它显示一个按钮的图像,例如选择。当我使用Selimg类单击此div时,将在div中添加一个名为“Selected”的新类,它将更改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 个答案:

答案 0 :(得分: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