使用jQuery将类添加到上一个元素

时间:2013-04-10 08:28:17

标签: jquery

我有滑块,我想获得前一个div并将class =“prev”添加到此

<div class="mb-panel" >
    <div class="mb-inside">
        <div id="container_1" class="mymasonryclass masonry">Example 1</div>
    </div>
</div>
<div class="mb-panel current">
    <div class="mb-inside">
        <div id="container_2" class="mymasonryclass masonry current">Example 1</div>
    </div>
</div>

在这里,我想要一个类似“mymasonryclass masonry prev”的课程,用于前一个div并以动态方式

我已经使用了jquery。

我试过下面的代码:

$('.mymasonryclass').each(function(index, value){
    var cname = $(this).attr('class');
    if(cname.indexOf('current') != -1)
    {
        var div= $(this).parent('div');
        var prev= $(div).prev();
        var output;
        var x = $('.mb-inside');
        $('.mb-inside').each(function(index,value){
            var t1 = $(this).find('div.current');
            if(t1.length > 0)
            {
                var output = $('.mb-inside')[index-1];
                if(index-1 > 0)
                    output.css('float', 'right');
            }
        });
    }
});

但它不起作用。

3 个答案:

答案 0 :(得分:2)

鉴于上述结构,这可能是你所追求的:

var $previousPanel = $('.mb-panel.current').prev(); // get previous panel
$previousPanel.addClass('prev'); // add class to panel
$previousPanel.find('.masonry').addClass('prev'); // add class to inner div too

Here's an example

答案 1 :(得分:0)

你可以使用我的直播[[1]:http://jsfiddle.net/liyakat/SB6N3/] [1]

只有一个静态div,你可以根据你的要求使其动态

 $(document).ready(function() {

 $("#container_2").hover(
function () {    

   $(this).parents(".mb-panel").prev().find('div.mymasonryclass').addClass('prev');

  },
  function () {
    // $(this).removeClass("hover");
  }
); 

});

答案 2 :(得分:0)

我尝试过以下代码并且可以正常使用

var a = $('.mb-panel.current').prev();
var b = a.find('.mymasonryclass.masonry');
if(b)
b.css('float', 'right');