Javascript 如何将类分别附加到每个元素?

Javascript 如何将类分别附加到每个元素?,javascript,jquery,css,Javascript,Jquery,Css,我有一个由4个框组成的列表,每个框都有两个部分。内容主包装器和。内容次包装器,在这两个部分中都有一个名为。内容内部的div。我正在运行一个基于内容内部类高度的条件,以决定哪个get是添加到它的border类 正如我现在看到的,函数运行,然后将结果应用于所有类,我如何让它在元素的基础上应用它?我正试图得到它,所以它是这样工作的: 运行函数,确定第一个元素的高度 确定第一个元素的高度 仅将边框类应用于此元素 冲洗并重复其他3个物体 这是我正在使用的脚本,有什么想法可以循环使用这些脚本吗 var pr

我有一个由4个框组成的列表,每个框都有两个部分
。内容主包装器
。内容次包装器
,在这两个部分中都有一个名为
。内容内部
的div。我正在运行一个基于
内容内部
类高度的条件,以决定哪个get是添加到它的border类

正如我现在看到的,函数运行,然后将结果应用于所有类,我如何让它在元素的基础上应用它?我正试图得到它,所以它是这样工作的:

  • 运行函数,确定第一个元素的高度
  • 确定第一个元素的高度
  • 仅将边框类应用于此元素
  • 冲洗并重复其他3个物体
  • 这是我正在使用的脚本,有什么想法可以循环使用这些脚本吗

    var primary_height = $('.content-primary-wrapper .content-inner').height();
    
    var secondary_height = $('.content-secondary-wrapper .content-inner').height();
    
    if ( primary_height >= secondary_height ){
       $(this).find('.content-primary-wrapper .content-inner').addClass('add-border-right');
    } else {
       $(this).find('.content-secondary-wrapper .content-inner').addClass('add-border-left');
    }
    

    有多种方法可以做到这一点。我可能会运行一个选择器来获取包含四个框的元素,然后对它们上的主包装器和辅助包装器运行本地化查询,如下所示:

    $('.box-container').each(function(index, container) {
        var primary_height = $('.content-primary-wrapper .content-inner', container).height();
        var secondary_height = $('.content-secondary-wrapper .content-inner', container).height();
        // ...
    }
    
    或者,如果您确定它们总是这样配对,您可以简单地执行以下操作:

    var primary_elements = $('.content-primary-wrapper .content-inner');
    var secondary_elements = $('.content-secondary-wrapper .content-inner');
    var i;
    
    for (i = 0; i < primary_elements.length; ++i) {
        var primary_height = $(primary_elements[i]).height();
        var secondary_height = $(secondary_elements[i]).height();
        // ...
    }
    
    var primary_elements=$('.content-primary-wrapper.content-inner');
    var secondary_elements=$('.content secondary wrapper.content inner');
    var i;
    对于(i=0;i

    对我来说,这个版本似乎不太稳定,只是为了防止在某个时候开始删除一个或另一个元素,并且它们不再总是以这种假设的方式配对。

    这就是你要做的吗?在所有框中循环,找到每个框中的
    .content内部
    s,然后应用您的类

    $(“.box”)。每个(函数(){
    var$pri=$(this.find(“.content-primary-wrapper.content-inner”),
    $sec=$(this.find(“.content secondary wrapper.content internal”);
    如果($pri.height()>=$sec.height()){
    $pri.addClass(“添加边界权限”);
    }否则{
    $sec.addClass(“添加左边框”);
    }
    });
    
    .box{
    浮动:左;
    明确:两者皆有;
    }
    .向左添加边框{
    左边框:1px纯红;
    }
    .添加右边框{
    右边框:1px纯红;
    }
    
    两条
    线 一 一 两条
    线
    在我使用for-loop解决方案的每个元素上循环,但是不断遇到
    未捕获类型错误:primary_elements[I]。高度不是一个函数
    ,有什么想法吗?我相信我刚才用$()围绕元素所做的更改应该可以涵盖这一点。如果没有,请告诉我。现在它启动并创建边框,但它将边框添加到两个元素中,就像它开始添加它们一样,然后当它迭代并找到一个相反的元素时,所有这些类都会接收边框。这主要是因为,它必须将边框设置到
    内容主/次包装器
    元素上,除此之外,这还创造了奇迹!非常感谢!