addClass应该只适用于下一个IMG

时间:2012-02-19 17:58:02

标签: jquery addclass removeclass

我希望有人可以帮助我。 我怎样才能使addClass仅适用于下一个img而不是所有后续? 编辑:“addClass”应始终适用于下一个IMG,以便您可以一个接一个地浏览所有图像 - 如图库

$("#next").click(function(){
    if($("#gallery li").next("#gallery li").length != 0) {
        $("#gallery li").children("img").removeClass('toppicture');
        $("#gallery li").next("#gallery li").children("img").addClass('toppicture');
    }
    else {
        $(this).children("img").removeClass('toppicture');
        $("#gallery li:first-child").children("img").addClass('toppicture');
    }
});
带有id“gallery”的ul看起来像这样:

<li>
    <img class="toppicture" src="images/w1.jpg" title="Title #0"/>
</li>
<li>
    <img  src="images/w2.jpg" title="Title #1"/>
</li>
<li>
    <img  src="images/w3.jpg" title="Title #2"/>
</li>

2 个答案:

答案 0 :(得分:1)

你试过了吗?

$("#next").click(function(){
                if($("#gallery li").next("#gallery li").length != 0) {
                    var obj = $(".toppicture").parent("li").next().children("img");
                    $("#gallery li").children("img").removeClass('toppicture');
                    $(obj).addClass('toppicture');
                }
                else {
                    $(this).children("img").removeClass('toppicture');
                    $("#gallery li:first-child").children("img").addClass('toppicture');
                }
            });

来源:http://api.jquery.com/first-selector/

答案 1 :(得分:0)

也许你可以试试

$("#next").click(function(){
    //find the li with the class
    var liTop = $("#gallery li.toppicture");
    //if it has another element remove the class from itself and add it to the next 
    if(liTop.next().length !== 0) {
        liTop.removeClass('toppicture');
        liTop.next().addClass('toppicture');
    }
    else {
        $(this).children("img").removeClass('toppicture');
        $("#gallery li:first-child").children("img").addClass('toppicture');
    }
});