Javascript 如何比较父级和子级的数据属性?
我试图比较子div和其父div的数据属性,如果它们不匹配,则隐藏子元素。我希望能够比较父子关系的每个实例。test是父项,event是子项。这是我的Javascript 如何比较父级和子级的数据属性?,javascript,jquery,Javascript,Jquery,我试图比较子div和其父div的数据属性,如果它们不匹配,则隐藏子元素。我希望能够比较父子关系的每个实例。test是父项,event是子项。这是我的 if ($(".event").data("campaign-id") != $(".event").parent().data("campaign-id")) { $(".event").hide(); } dataas getter返回集合中第一个选定元素的指定数据。当第一个.event元素的活动id数据与其父
if ($(".event").data("campaign-id") != $(".event").parent().data("campaign-id")) {
$(".event").hide();
}
data
as getter返回集合中第一个选定元素的指定数据。当第一个.event
元素的活动id
数据与其父活动id
数据匹配时,脚本将隐藏所有.event
元素。您可以使用.filter()
方法:
$(".event").filter(function() {
return $(this).data("campaign-id") !== $(this.parentNode).data("campaign-id");
}).hide();
如果您获取的是数据活动id
属性,而不是jQuery存储的数据,那么另一个选项是:
[].forEach.call(document.querySelectorAll('.event'), function(el) {
var c = el.getAttribute('data-campaign-id'),
p = el.parentNode.getAttribute('data-campaign-id');
if ( c !== p ) {
el.style.display = 'none';
}
});
您可以使用.each()
执行此任务:
$(".event").each(function(){
if($(this).data("campaign-id") != $(this).parent().data("campaign-id"))
{
$(this).hide();
}
});
为什么不尝试一个简单的解决方案
函数checkAndHide($elem){if($elem.data(“活动id”)!=$elem.parent().data(“活动id”){$elem.hide();}}checkAndHide($(“.event”)代码>