0

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

1 回答 1

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
})

演示:小提琴

于 2013-10-09T07:23:53.507 回答