首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery函数优化

jQuery函数优化
EN

Stack Overflow用户
提问于 2013-10-14 14:06:32
回答 3查看 93关注 0票数 2

有办法让这个更快吗?

此函数管理一些动态表单元素。

代码语言:javascript
复制
 function HideAllDivs(parentDiv) {
        var divs = $('#' + parentDiv + ' div'), divsLength = divs.length;   
        for (var a = 0; a < divsLength; a++) {
            var obj = $('#' + divs[a].id);
            obj.find('input[type=radio]:checked').removeProp('checked');
            obj.find('input[type=checkbox]:checked').removeProp('checked');
            obj.find('input[type=text]').val('');
            obj.find('select').val('');
            obj.find('input[type=radio]').each(function () { $(this).removeClass('selectedCtrl');   });
            obj.hide(1);                           
        }    
    }

谢谢你,大卫

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-14 14:22:32

你可以用..。

代码语言:javascript
复制
function HideAllDivs(parentDiv) {
    $('#' + parentDiv + ' div')
        .hide()
        .find('input, select')
            .removeProp(':checked') // will be ignored where not applicable
            .removeClass('selectedCtrl') // will be ignored where not applicable
            .filter('input[type="text"], select').val('');
}
票数 4
EN

Stack Overflow用户

发布于 2013-10-14 14:09:58

不需要使用循环,您可以使用单选按钮来改进这两个操作。

代码语言:javascript
复制
function HideAllDivs(parentDiv) {
    var divs = $('#' + parentDiv + ' div');

    var radios = divs.find('input[type=radio]')
    radios.filter(':checked').removeProp('checked');
    radios.find('.selectedCtrl').removeClass('selectedCtrl');

    divs.find('input[type=checkbox]:checked').removeProp('checked');
    divs.find('input[type=text], select').val('');
    divs.hide(1);
}
票数 1
EN

Stack Overflow用户

发布于 2013-10-14 14:25:23

我觉得应该再快一点.

代码语言:javascript
复制
function HideAllDivs(parentDiv) {

  var $divs = $('#' + parentDiv + ' div');

  $divs
    .find('input[type=text],select').val('').end()
    .find(':checked').removeProp('checked').end()
    .find('.selectedCtrl[type=radio]').removeClass('selectedCtrl').end()
    .hide(1);
}

以下性能测试

*编辑:失败,我实际上没有运行测试-_-;修正了。*

http://jsperf.com/hiding-divs-19362135

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

https://stackoverflow.com/questions/19362135

复制
相关文章

相似问题

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