首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery/我希望通过使用for-循环使我的代码更加清晰。

jquery/我希望通过使用for-循环使我的代码更加清晰。
EN

Stack Overflow用户
提问于 2016-08-10 05:26:44
回答 2查看 18关注 0票数 1

我是这方面的新手。当我做编码的时候,我有一个问题。但我找不到解决问题的办法.

我想下面的代码,以更清楚地使用for-循环.我能为这个做些什么?

代码语言:javascript
复制
$('.special1').on("click",'.chkbutton1',function() {
    $('.special1').toggleClass('effect-oscar effect-oscar-second');
});
$('.special2').on("click",'.chkbutton2',function() {
    $('.special2').toggleClass('effect-oscar effect-oscar-second');
});
$('.special3').on("click",'.chkbutton3',function() {
    $('.special3').toggleClass('effect-oscar effect-oscar-second');
});

<<omitted>>

$('.special11').on("click",'.chkbutton11',function() {
    $('.special11').toggleClass('effect-oscar effect-oscar-second');
});

$('.special12').on("click",'.chkbutton12',function() {
    $('.special12').toggleClass('effect-oscar effect-oscar-second');
});*/
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-10 05:35:30

您不需要使用for循环。您可以这样简单地使用:

代码语言:javascript
复制
$('[class^="chkbutton"]').on('click',function(){
   $(this).parent() //not sure if .special.. is parent, select the correct element
    .toggleClass('effect-oscar effect-oscar-second');
});

我认为.parents('[class^="special"]')是合适的。

或者,您可以像这样使用delegateTarget

代码语言:javascript
复制
$('[class^="special"]').on("click",'[class^="chkbutton"]',function(e) {
    $(e.delegateTarget).toggleClass('effect-oscar effect-oscar-second');
});
票数 0
EN

Stack Overflow用户

发布于 2016-08-10 05:36:07

这里不能使用for循环,但可以通过以下方式完成:

代码语言:javascript
复制
$('[class^=special]').on("click",'class^=chkbutton',function() {
    var classList = $(this).attr("class"); //get all the classes associated with button; one of then will be starting with chkbutton 
    var classArray = classList.split(" ");
    $.each( classArray, function( i, val ) {
        if(val.indexOf("chkbutton") == 0)
        {
            var requiredClass = val;
            var number = requiredClass.replace("chkbutton", ""); //grab the number
            $('.special'+number).toggleClass('effect-oscar effect-oscar-second');
        }
    }
});

注意:我无法测试上面的代码,但是我使用了有效的jquery,所以非常肯定它会按照预期工作。

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

https://stackoverflow.com/questions/38864893

复制
相关文章

相似问题

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