我有一个jQuery每个循环,它在我的页面上查找类 Get-ChildItem $path | Remove-Item -Recurse -WhatIf
的所有内容,并为Google DFP添加了一些广告脚本。
我想要发生的是,如果包含div有一个iFrame,它应该触发if语句并设置父项高度。我遇到的问题是,每次脚本循环时,它总是触发if语句,并且似乎没有选择隐藏和显示的内容。
.big-box-300x250
从feedData变量中提取的数据是唯一的,也用于ID。例如,div可能看起来像这样:
$('.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();
}
}
});
如何修复此脚本,以便在每个循环中单独查看每个广告div,确定它是否具有iFrame,然后相应地运行脚本,然后再转到下一个。
这就是生成的标记的样子。前两个是工作广告,第二个是没有内容的空广告。前两个是我想要触发if语句的那个,但它会触发所有这些。
答案 0 :(得分:1)
在这里,您应该检查.length
is >0
,因为.has()
方法不会返回boolean
值
if ($(this).has('iframe').length>0) {
答案 1 :(得分:0)
试试这个:
if ($(this).has('iframe').length)