首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery只选择指定数量的元素

jQuery只选择指定数量的元素
EN

Stack Overflow用户
提问于 2014-08-04 15:28:13
回答 1查看 157关注 0票数 0

jQuery只选择指定数量的元素,如果选择多于指定的元素,则取消选择先前选定的元素。

我有下面的代码来限制选择第四个图像,但我需要能够点击,即使三个被选中,当第4个图像被选中时,第一个图像应该被取消选择。

HTML

代码语言:javascript
复制
<pre>
    <ul class="ul-attribute80" style="margin-top: 10px;">
        <li class="swatchContainer">
            <img id="col-11" src="images/col1.jpg" class="swatch" alt="Skipper" width="30px" height="30px" title="Skipper">
        </li>
        <li class="swatchContainer">
            <img id="col-11" src="images/col1.jpg" class="swatch" alt="Skipper" width="30px" height="30px" title="Skipper">
        </li>
        <li class="swatchContainer">
            <img id="col-11" src="images/col1.jpg" class="swatch" alt="Skipper" width="30px" height="30px" title="Skipper">
        </li>
        <li class="swatchContainer">
            <img id="col-11" src="images/col1.jpg" class="swatch" alt="Skipper" width="30px" height="30px" title="Skipper">
        </li>
    </ul>
</pre>

JS

代码语言:javascript
复制
var counter= 0;
jQuery(".ul-attribute80 li img").click(function() {
    if(counter < 3) {
        if(jQuery(this).hasClass("selected")) {
            jQuery(this).removeClass("selected");
            count--;
        } else {
            jQuery(this).addClass("selected");
            count++;
        }
    }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-04 16:07:11

我会用数组代替计数器。只需在单击时将元素添加到数组中,检查它们是否已经在数组中,或者数组是否长于三个元素。

代码语言:javascript
复制
var selected = [];
jQuery(".ul-attribute80 li img").click(function () {
    $('.swatch').removeClass("selected");
    if ($.inArray($(this).attr('id'), selected) == -1) {
        selected.push($(this).attr('id'));
    } else {
        selected.splice($.inArray($(this).attr('id'), selected), 1);
    }
    if (selected.length > 3) {
        selected.shift();
    }
    $.each(selected, function () {
        $('#' + this).addClass("selected");
    })
});

jsFiddle实例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25122235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档