Discuss / JavaScript / prop写属性是jQuery下的所有dom都写,取属性则是只取第一个,坑死

prop写属性是jQuery下的所有dom都写,取属性则是只取第一个,坑死

Topic source

alienation

#1 Created at ... [Delete] [Delete and Lock User]

代码重复的地方有点多

selectAll.click(function(){
    if (selectAll.prop('checked')){
        langs.prop('checked',true)
        deselectAllLabel.show()
        selectAllLabel.hide()
    }
    else {
        langs.prop('checked',false)
        selectAllLabel.show()
        deselectAllLabel.hide()
    }
})


invertSelect.click(function(){
    if (selectAll.prop('checked')){
        selectAll.prop('checked',false)
        langs.prop('checked',false)
        deselectAllLabel.hide()
        selectAllLabel.show()

    }
    else if (0 === langs.filter(function(){
        return $(this).prop('checked')
    }).length){
        selectAll.prop('checked',true)
        langs.prop('checked',true)
        deselectAllLabel.show()
        selectAllLabel.hide()
    }
    else{
        langs.map(function(){
            if ($(this).prop('checked')){
                $(this).prop('checked',false)
            }
            else{
                $(this).prop('checked',true)
                if (langs.length === langs.filter(function(){
                    return $(this).prop('checked')
                })){
                    selectAll.prop('checked',true)
                    selectAllLabel.hide()
                    deselectAllLabel.show()
                }
            }
        })
    }
})


langs.map(function(){
    $(this).click(function(){
        if (selectAll.prop('checked')){
            selectAll.prop('checked',false)
            deselectAllLabel.hide()
            selectAll.show()
            $(this).prop('checked',fasle)
        }
        else{
            if (langs.length === langs.filter(function(){
                 return $(this).prop('checked')
                }
            ).length){
                selectAll.prop('checked',true)
                selectAllLabel.hide()
                deselectAllLabel.show()
            }
        }
    })
})

alienation

#2 Created at ... [Delete] [Delete and Lock User]

评论区用change事件监控是否全选的思路好棒啊

一次把反选和langs--全选--全不选的反应机制都写好了

alienation

#3 Created at ... [Delete] [Delete and Lock User]

回头看我的,可读性不是一般的差


  • 1

Reply