我有一个jQuery each循环,它在我的页面上寻找类.big-box-300x250
的所有内容,并为Google DFP附加一些广告脚本。jQuery每个循环都触发if语句在每个循环中
我想要发生的是,如果包含div有一个iFrame它应该触发if语句并设置父母的高度。我遇到的问题是每次脚本循环它总是触发if语句,并且似乎没有关于它隐藏和显示的选择。
$('.big-box-300x250').each(function(index) {
var display = $(this).data("desktop-display");
if (display == true){
var feedData = $(this).data('ad-type');
var ad_script = '<script type="text/javascript">googletag.cmd.push(function() { googletag.display("' + feedData + '"); });</script>';
$(this).append(ad_script);
if ($(this).has('iframe')) {
console.log("Triggering");
$(this).parent().height(250)
$(this).parent().css("margin", "20px 0")
$(this).show();
}
}
});
从feedData变量拉入的数据是唯一的,也用于ID。例如在div可能是这个样子:
<div id="div-gpt-ad-1450382754763-1" class="pb-ad-container big-box-300x250 border-bottom-hairline" data-mobile-display="false" data-desktop-display="true" data-ad-type="div-gpt-ad-1450382754763-1" style="">
我怎样才能解决这个脚本,以便在每个循环,它看起来在每个广告格设置单独,确定它是否有一个IFRAME,然后才去相应地运行该脚本到下一个。
这就是生成的标记的样子。前两个是工作广告,第二个是没有内容的空广告。前两个是我想要触发if语句的那个,但是它触发了所有这些语句。
你有任何类元素'big-box-300x250'嵌套在类别为'big-box-300x250'的其他元素中? –
@MattBrowne负。在页面上有多个大盒子300x250的项目,但它们不是彼此嵌套的。 –