感谢你帮助我。我有工作代码,删除以前选择的元素中的类:
$('.tag-list-item').click(function () {
$('.tag-list-item').each(function (i, elem) {
console.log(elem);
$(elem).removeClass('tag-list-chosen');
});
});
但是现在我需要重建它以仅在具有共同父元素的元素中删除类。 (原因是,在开始时,这段代码帮助我通过一个参数选择块,现在增加了参数量)。试图这样做,而不是工作:
$('.tag-list-item').click(function () {
$('.tag-list-item').parent('.tag-list-item', this).each(function (i, elem) {
console.log(elem);
$(elem).removeClass('tag-list-chosen');
});
});
整个HTML都是这样的。首先,我有两个列表(可能还有更多,我想创建通用工作代码)和标签:
<div class="row no-width-margin" id="selector-theme">
<h5 class="tag-title">Tag group 1</h5>
<ul class="tag-list">
<li class="tag-list-item" data-theme="all-theme">All themes</li>
<li class="tag-list-item" data-theme="holidays-theme">Holidays</li>
<li class="tag-list-item" data-theme="spring-theme">Spring</li>
<li class="tag-list-item" data-theme="new-year-theme">New year</li>
</ul>
</div>
<div class="row no-width-margin" id="selector-sector">
<h5 class="tag-title">Tag group 2</h5>
<ul class="tag-list" style="padding: 0">
<li class="tag-list-item" data-sector="all-sector">Все отрасли</li>
<li class="tag-list-item" data-sector="cinema-sector">Movies</li>
<li class="tag-list-item" data-sector="entertainment-sector">Entertainment</li>
</ul>
</div>
和包含数十张卡的大块,每张卡都有这种结构(具有不同的数据属性内容):
<div class="file-box" data-theme="all-theme,holidays-theme" data-sector="all-sector,cinema-sector">
<div class="file">
<div class="image">
</div>
<div class="file-name">
</div>
</div>
</div>
当我点击列表中的标签时,没有选定标签的卡片正在消失。
我做错了什么?
答案 0 :(得分:0)
更新:此答案与问题编辑 不匹配“当我点击列表中的标记时,没有选定标记的卡片正在消失。”
只要您的“共同父母”有一个类或其他方式来识别,您就可以使用$(this).closest("parentclass")
,例如:
$('.tag-list-item').click(function () {
$(this).closest(".tag-list-parent")
.find(".tag-list-item")
.each(function (i, elem) {
console.log(elem);
$(elem).removeClass('tag-list-chosen');
});
要解决这个问题:
var mutualparent = $(this).closest(".parent-class");
va alltaglistsinparent = mutualparent.find(".tag-list-parent")
如果您没有课程,可以使用包含dev,例如:
$(this).closest("div")...
或其他相关元素
$(this).closest("ul")...
如果他们都是兄弟姐妹,即所有人都处于同一级别,那么你可以使用上面的parent(),或者你可以使用.siblings()
有或没有.andSelf()
来包括this
:
$('.tag-list-item').click(function () {
$(this).siblings(".tag-list-item").andSelf()
.each(function (i, elem) {
console.log(elem);
$(elem).removeClass('tag-list-chosen');
});