Javascript 对于同一类的每个div,做些什么

Javascript 对于同一类的每个div,做些什么,javascript,jquery,Javascript,Jquery,我有一些和我同班的演员。在这个分区中,我添加了另一个分区来放置广告。 现在我试图隐藏addiv,如果保存addiv的div的宽度等于366px 我尝试了下面的代码,但它只隐藏了我的第一个广告版面 例如: <div class="masterdiv"> <div id="myaddiv"></div> </div> <div class="masterdiv"> <div id="myaddiv"></div>

我有一些和我同班的演员。在这个分区中,我添加了另一个分区来放置广告。 现在我试图隐藏addiv,如果保存addiv的div的宽度等于366px

我尝试了下面的代码,但它只隐藏了我的第一个广告版面

例如:

<div class="masterdiv">
<div id="myaddiv"></div>
</div>

<div class="masterdiv">
<div id="myaddiv"></div>
</div>

<div class="masterdiv">
<div id="myaddiv"></div>
</div>

谢谢大家!

因为
var adwidth=$(“.masterdiv”).width()仅返回第一个值。答案在你的标题中,你需要使用每一个。另一个问题是ID是单数的,因此需要使用类

使用每个:

$(".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();
<div class="masterdiv">
    <div class="myaddiv"></div>
</div>
使用过滤器:

$(".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();
<div class="masterdiv">
    <div class="myaddiv"></div>
</div>
更新的HTML:

$(".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();
<div class="masterdiv">
    <div class="myaddiv"></div>
</div>

您不应使用重复的ID。请使用:

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


这只是执行第一个div,因为您使用的是id而不是类。由于每页只能有一个id,javascript在匹配第一个id后停止。换个班,你应该没事。

你必须这样换:

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

您可以试试这个

您正在为不同的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()
            }
        }

    });

$(文档).ready(函数(){
var adwidth=$(“.masterdiv”);
对于(i=0;i
您还有多个
id
。它们必须是唯一的,也必须是唯一的。否则您可以使用类名。请举例说明?非常感谢。我尝试了这个$('.masterdiv').each(function(){my rest code};倒霉