当'.active'元素为':even'时,元素的移位顺序(JQuery)

时间:2013-03-09 19:35:13

标签: javascript jquery

如果编写JQuery代码,它会改变元素的顺序,如果某个类型的'even'元素是'.active'?我想在活动之前移动next(odd)元素。 我应该使用.index()和.detach()方法......

语法示例 http://jsfiddle.net/Tymek/M6qFM/

<div id="wrap">
    <div class="element">1. Pierwszy</div>
    <div class="element">2. Drugi</div>
    <div class="element">3. Trzeci</div>
    <div class="element active">4. Czwarty</div> <!-- 4 is even -->
    <div class="element">5. Piąty</div> <!-- then move this up -->
    <div class="element">6. Szósty</div>
    <div class="element">7. Siódmy</div>
</div>

2 个答案:

答案 0 :(得分:2)

您可以有选择地检查奇数索引项目是否具有活动类别,然后将以下项目移动到奇数索引项目之前。

// For each of the odd index elements
$('.element').filter(':odd').each(function(index, element) {
    // If the element has the active class
    if ($(element).hasClass('active')) {
        // Get the next element and move it before the active element
        $(element).next().insertBefore($(element));
    }
});

<强> DEMO

答案 1 :(得分:1)

当您有:odd:even时,无需检查索引(索引是零索引,因此您希望在这种情况下检查:odd。)

var $active = $(".active");
if ($active.is(":odd")) {
    $active.next().after($active);
}

http://jsfiddle.net/M6qFM/1/