如果元素在数组中,则在循环检查中根据锚项的 id 检查 data-id
Check data-id based on id of an anchor item in a loop checkin if the element is within an array
这是我的问题。
如果我的用户单击 link,我想显示一堆元素。每个 link 都有一个 id,每组元素都包含在主 div.
中
这是html:
<div class="col-md-55">
<div>
<img src="/wp-content/themes/wpboot/images/svg/aaps_cannabis_icon.svg">
<h4>something</h4>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<a href="#" id="course1">All Courses</a>
</div>
</div>
<div class="col-md-55">
<div>
<img src="/wp-content/themes/wpboot/images/svg/aaps_nutrition_icon.svg">
<h4>something 2</h4>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<a href="#" id="course2">All Courses</a>
</div>
</div>
<div class="col-md-9 col-md-offset-3" data-id="course1">
<div class="col-4">
<div>
<h3>Course1</h3>
</div>
</div>
</div>
<div class="col-md-9 col-md-offset-3" data-id="course2">
<div class="col-4">
<div>
<h3>Course2</h3>
</div>
</div>
</div>
我将使用 jquery:
访问我的所有元素
var buttonhideprogram = $('a');
var targetprograms = $('.col-md-9');
var targetprogramsid =[];
targetprograms.each(function() {
targetprogramsid.push( $(this).data("id"));
});
buttonhideprogram.click( function(e) {
e.preventDefault();
if (!$(this).hasClass('Open')) {
$(this).addClass('Open');
var things = $(this).attr('id');
if ($.inArray(things, targetprogramsid)!='-1') {
console.log(targetprogramsid);
targetprogramsid.show();
}
}
});
很简单,我将首先声明所有要使用 jquery 访问的元素,然后我将创建一个包含所有程序的数组,然后再次单击我将执行其他操作,但最重要的是我将创建一个名为 things 的变量,这是我要单击的元素,我将查找该 id 是否存在于我的数组中。
从那时起,我仍然无法完成代码,因为代码到目前为止有效,但我不知道如何隐藏数组中与 id 属性匹配的元素(而不是隐藏) .
有什么建议吗?
为什么不直接定位具有正确 data-id 的元素。
var things = $(this).attr('id');
var target = $("[data-id='" + things + "']");
target.show();
代码不正确,无法运行。你正在隐藏一个数组。
无需将 Open 分配给 link,甚至是课程。只需检查它是否已经可见。
这里有您需要的一切:
var buttonhideprogram = $('a');
buttonhideprogram.click(function(e) {
e.preventDefault();
var things = $(this).attr('id');
//console.log(things)
var elem = $('.col-md-9[data-id=' + things + ']');
if (elem.is(":visible")) {
elem.hide();
} else {
elem.show();
}
});
这是我的问题。
如果我的用户单击 link,我想显示一堆元素。每个 link 都有一个 id,每组元素都包含在主 div.
中这是html:
<div class="col-md-55">
<div>
<img src="/wp-content/themes/wpboot/images/svg/aaps_cannabis_icon.svg">
<h4>something</h4>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<a href="#" id="course1">All Courses</a>
</div>
</div>
<div class="col-md-55">
<div>
<img src="/wp-content/themes/wpboot/images/svg/aaps_nutrition_icon.svg">
<h4>something 2</h4>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<a href="#" id="course2">All Courses</a>
</div>
</div>
<div class="col-md-9 col-md-offset-3" data-id="course1">
<div class="col-4">
<div>
<h3>Course1</h3>
</div>
</div>
</div>
<div class="col-md-9 col-md-offset-3" data-id="course2">
<div class="col-4">
<div>
<h3>Course2</h3>
</div>
</div>
</div>
我将使用 jquery:
访问我的所有元素var buttonhideprogram = $('a');
var targetprograms = $('.col-md-9');
var targetprogramsid =[];
targetprograms.each(function() {
targetprogramsid.push( $(this).data("id"));
});
buttonhideprogram.click( function(e) {
e.preventDefault();
if (!$(this).hasClass('Open')) {
$(this).addClass('Open');
var things = $(this).attr('id');
if ($.inArray(things, targetprogramsid)!='-1') {
console.log(targetprogramsid);
targetprogramsid.show();
}
}
});
很简单,我将首先声明所有要使用 jquery 访问的元素,然后我将创建一个包含所有程序的数组,然后再次单击我将执行其他操作,但最重要的是我将创建一个名为 things 的变量,这是我要单击的元素,我将查找该 id 是否存在于我的数组中。
从那时起,我仍然无法完成代码,因为代码到目前为止有效,但我不知道如何隐藏数组中与 id 属性匹配的元素(而不是隐藏) .
有什么建议吗?
为什么不直接定位具有正确 data-id 的元素。
var things = $(this).attr('id');
var target = $("[data-id='" + things + "']");
target.show();
代码不正确,无法运行。你正在隐藏一个数组。 无需将 Open 分配给 link,甚至是课程。只需检查它是否已经可见。 这里有您需要的一切:
var buttonhideprogram = $('a');
buttonhideprogram.click(function(e) {
e.preventDefault();
var things = $(this).attr('id');
//console.log(things)
var elem = $('.col-md-9[data-id=' + things + ']');
if (elem.is(":visible")) {
elem.hide();
} else {
elem.show();
}
});