Jquery 是否可以选择左位置相同的所有div?

Jquery 是否可以选择左位置相同的所有div?,jquery,Jquery,我在一个页面上有6个div,它们根据页面中的内容动态地放在两列中。在本例中,一些div放在左栏,一些放在右栏,所有这些都取决于div的高度。我想抓取所有放在左栏或右栏的div。我正在寻找一种方法,为所有左列div添加一个类,以区分右列div?可以在jQuery中使用选择器来实现这一点吗 function fixPAPanelHeights() { var column1Height = 0; var column2Height = 0;

我在一个页面上有6个div,它们根据页面中的内容动态地放在两列中。在本例中,一些div放在左栏,一些放在右栏,所有这些都取决于div的高度。我想抓取所有放在左栏或右栏的div。我正在寻找一种方法,为所有左列div添加一个类,以区分右列div?可以在jQuery中使用选择器来实现这一点吗

 function fixPAPanelHeights()
    {
        var column1Height = 0;
        var column2Height = 0;
        var panel1Item;
        var panel2Item;

        var panelCount = 0;

        $j("div.panelItr").each(function() {
            panelCount++;
            if ($j(this).hasClass("panel2Column"))
                {
                    if (column1Height > column2Height)
                    {
                        $j(panel2Item).css("height", $j(panel2Item).innerHeight() + column1Height - column2Height + (5 * (((panelCount - 1) / 2) - 1)));
                    }
                    else if (column2Height > column1Height)
                    {
                        $j(panel1Item).css("height", $j(panel1Item).innerHeight() + column2Height - column1Height + (5 * (((panelCount - 1) / 2) - 1)));
                    }
                    column1Height = 0;
                    column2Height = 0;
                    panelCount = 0;
                }
            else
                {           
                    if (panelCount%2 == 1)
                    {                   
                        $j(this).css("float", "left");
                                    pos = $j(this).offset();


            $j(this).css({ "left": (pos.left) + "px"});
                            panel1Item = $j(this);              
                            column1Height += $j(this).innerHeight();                
                        }
                        else
                        {

                            $j(this).css("float", "left");
                    panel2Item = $j(this);
    pos = $j(this).offset();
        $j(this).css({ "left": (pos.left) + "px"}); 


                        column2Height += $j(this).innerHeight();

                    }
                }

         });
注意:if($j(this).hasClass(“panel2Column”))条件测试是否有足够长的div来占用这两列,并基于它进行一些计算。我们关心的是else情况,其中所有div都具有相同的宽度,并且可能占用左列或右列

更新:


找到了一种解决方案来识别div放在哪个列中。因为它是一个2列,div只有2个可能的左位置,下面的代码很有帮助

在上述else条件下:

var dataHolder = $j("div.panelItr").first().offset().left;
else{
    if($j(this).offset().left == dataHolder){
                    $j(this).addClass("leftColumn");
                }
                else{
                    $j(this).addClass("rightColumn");
                }
}

像这样的东西可能就行了

if($('div').css('float') == 'left'){
    $('div').addClass('leftColumn')
}
编辑:

鉴于你的评论

如果div的大小小于左列div,则为 放在右栏

你可以试试这样的

if($('.leftColumn').css('width') > $('.newDiv').css('width')){
    $('.newDiv').addClass('rightColumn')
}

也就是说,如果左列
div
width
大于正在放置的
div
width
,那么在正在放置的
div
中添加一个右列类。

这是一种解决方案,用于识别div放置在哪个列中。因为它有2列,并且只有2个可能的左位置,下面的代码会有所帮助

var dataHolder = $j("div.panelItr").first().offset().left;

if($j(this).offset().left == dataHolder){
                $j(this).addClass("leftColumn");
            }
            else{
                $j(this).addClass("rightColumn");
            }

让我们看看动态地将它们放置在列中的代码!你能把div分成每一列的代码贴出来吗。理论上是在对列进行排序时使用
addClass()
,然后选择所有包含相关类的div。我回答了,但我很确定我误解了您的操作,所以我将其删除。不幸的是,这无法工作,因为尽管有些元素被左浮动,如果div的大小小于左栏div,则将其置于右栏。如果是@web_dev,则在
if
语句中添加
,或添加
else