我有一些同类的div。在这个div中我添加了另一个div来放置广告。 现在我试图隐藏广告div,如果持有我的广告div的div的宽度等于366px;
我试过下面的代码,但它只隐藏了我的第一个广告div ..
示例:
<div class="masterdiv">
<div id="myaddiv"></div>
</div>
<div class="masterdiv">
<div id="myaddiv"></div>
</div>
<div class="masterdiv">
<div id="myaddiv"></div>
</div>
我的jquery代码是:
var adwidth = $(".masterdiv").width();
if (adwidth == 366){
$('#myaddiv').hide();
}
谢谢!
答案 0 :(得分:1)
因为var adwidth = $(".masterdiv").width();
仅返回第一个值。答案在你的标题中,你需要使用每一个。另一个问题是ids是SINGULAR,所以你需要使用一个类
使用每个:
$(".masterdiv").each( function() {
var elem = $(this);
var width = elem.width();
if (width == 366){
elem.find('.myaddiv').hide(); //use a class since only one element can have an id
}
});
使用过滤器:
$(".masterdiv").filter( function() {
return ($(this).width() == 366);
}).find('.myaddiv').hide();
更新的HTML:
<div class="masterdiv">
<div class="myaddiv"></div>
</div>
答案 1 :(得分:1)
你不应该使用重复的ids.use:
$('div .masterdiv').each(function(){
if($(this).width()==366){
$(this).find('div').hide();
}});
答案 2 :(得分:1)
尝试:
$('.masterdiv').each(function(){
if($(this).width()==386){
$(this).hide();
}
});
答案 3 :(得分:1)
这只是在做第一个div,因为你使用的是id而不是类。由于每页只能有一个id,因此javascript在匹配第一个后停止。改为上课,你应该没事。
答案 4 :(得分:1)
$(".masterdiv").each(function(){
var current = $(this);
if(current.width() == 366) {
current.hide();
}
});
答案 5 :(得分:1)
你对不同的div使用相同的id
而不是id,给出类名
<div class="masterdiv">
<div class="myaddiv">
</div>
</div>
<div class="masterdiv">
<div class="myaddiv">
</div>
</div>
<div class="masterdiv">
<div class="myaddiv">
</div>
</div>
$(document).ready(function () {
var adwidth = $(".masterdiv");
for (i = 0; i < adwidth.length; i++) {
if ($(adwidth[0]).attr("width") == 366) {
$(this).find('.myaddiv').hide()
}
}
});
答案 6 :(得分:0)
你必须以这种方式改变:
$('#myaddiv', '.masterdiv').each(function() {
var width = $(this).width();
(width > 366) ? $(this).hide() : 0;
});
您可以试试这个live DEMO