2014-02-21 42 views
-1

我有一些具有相同類的div。在這個divs裏面,我加了另一個div來放置一個廣告。 現在我試圖隱藏廣告div如果div的寬度持有我的廣告div等於366px;對於同一類的每個div做點什麼

我試過的代碼波紋管,但它隱藏只是我的第一個廣告的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(); 
} 

謝謝!

+7

你也有多個'id'。他們需要是唯一的 – ashley

+0

id必須是唯一的。否則你可以使用類名。 –

回答

1

因爲​​只返回第一個值。答案是在你的標題中,你需要使用每個。另一個問題是,IDS是獨特的,所以你需要使用類

使用每個:

$(".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> 
+0

請舉例嗎?謝謝!我嘗試了這個$('。masterdiv')。每個(function(){我的代碼 }};沒有運氣 –

+0

我喜歡隨機倒票。 – epascarello

1

你不應該使用重複ids.use:

$('div .masterdiv').each(function(){ 
    if($(this).width()==366){ 
    $(this).find('div').hide(); 
}}); 
1

嘗試:

$('.masterdiv').each(function(){ 
    if($(this).width()==386){ 
     $(this).hide(); 
    } 
}); 
1

這只是在做第一個div因爲你使用的id而不是類。由於每個頁面只能有一個id,所以在匹配第一個javascript後就停止了。改爲上課,你應該沒問題。

1
$(".masterdiv").each(function(){ 
    var current = $(this); 
    if(current.width() == 366) { 
     current.hide(); 
    } 
}); 
0

你必須用這種方式來改變:

$('#myaddiv', '.masterdiv').each(function() { 
     var width = $(this).width(); 
     (width > 366) ? $(this).hide() : 0;  
}); 

您可以在此live DEMO

1

嘗試使用的是同一個ID,用於不同的div

取而代之的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() 
      } 
     } 

    }); 
相關問題