检查是否有课程

时间:2014-04-14 08:32:12

标签: jquery

这是我的HTML:

<div id="gallery">
    <div class="item"></div>
    <div class="somethingelse"></div>
    <div class="item"></div>
    <div class="somethingelse"></div>
    <div class="item active"></div>
    <div class="somethingelse"></div>
    <div class="item"></div>
</div>

现在,对于每个item,我想在div中添加数字,所以我这样做了:

function initMenu() {
    $( ".gallery-menu" ).html("");
    var columns = $('.item').length;
    for ( var i = 0; i < columns; i++ ) {
        $( ".gallery-menu" ).append( i );
    }
}
initMenu();

现在我在0 1 2 3 div中变得简单gallery-menu,这很好。

现在我想检查它是否是active。所以我添加了一个这样的支票:

function initMenu() {
    $( ".gallery-menu" ).html("");
    var columns = $('.item').length;
    for ( var i = 0; i < columns; i++ ) {
        if ($(".item:eq(i)").hasClass('active')) {
            $( ".gallery-menu" ).append( i + "-active");
        } else {
            $( ".gallery-menu" ).append( i );
        }
    }
}
initMenu();

但它不起作用..有人能指出我正确的方向吗?

4 个答案:

答案 0 :(得分:3)

你可以这样做:

if ($(".item").eq(i).hasClass('active')) {

您可以使用eq功能而不是连接字符串。

答案 1 :(得分:2)

您错过了联接i

试试这个

if($('.item:eq('+i+')').hasClass('active'))

答案 2 :(得分:1)

尝试使用i

在此处正确连接您的+变量
if ($(".item:eq(" + i + ")").hasClass('active')) {

答案 3 :(得分:1)

更简洁的方法是使用jQuery&#39; each()函数:

$('.item').each(function(i, el){
    if ($(this).hasClass('active')) {
        $( ".gallery-menu" ).append( i + "-active");
    } else {
        $( ".gallery-menu" ).append( i );
    }
});