最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實(shí)現(xiàn)表單全選或反選效果

 更新時(shí)間:2021年06月30日 17:22:42   作者:廖若星辰LTY  
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)表單全選或反選效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)表單全選或反選的具體代碼,供大家參考,具體內(nèi)容如下

表單中常常會(huì)用到checkbox復(fù)選框,通過(guò)復(fù)選框做出的列表全選或全不選的效果也是很常見(jiàn)的,比如購(gòu)物車的商品列表,所以本篇也是對(duì)這一種常見(jiàn)功能的選擇效果及其底層的實(shí)現(xiàn)思路及代碼進(jìn)行介紹、演示與分析,下面上JS代碼:

<script>
        // 表單的全選與全不選案例:注:checkbox復(fù)選框的checked屬性值為true則為選中狀態(tài),為false則為未選中狀態(tài)
        var j_cbAll = document.getElementById('j_cbAll');   // 獲取全選按鈕
        var j_tbs = document.getElementById('j_tb').getElementsByTagName('input'); // 獲取所有input復(fù)選框
        // 注冊(cè)事件
        // 1.全選按鈕的事件
        j_cbAll.onclick = function () {
            // this.checked可以獲取當(dāng)前復(fù)選框的狀態(tài)返回值為true或false
            for (var i = 0; i < j_tbs.length; i++) {
                j_tbs[i].checked = this.checked;    // 讓tbody里的復(fù)選框每一個(gè)的checked的值都等于當(dāng)前全選按鈕的checked的值,所以它們的狀態(tài)就會(huì)一致了
            }
        }
        // 2.tbody里面的復(fù)選框的事件:下面全選中了則全選按鈕也要為選中狀態(tài),若有至少一個(gè)未選中則全選按鈕也為未選中狀態(tài),注意:tbody里面的復(fù)選框每一次被點(diǎn)擊都需要做判斷,看是否所有的復(fù)選框都被選中了
        for (var i = 0; i < j_tbs.length; i++) {
            j_tbs[i].onclick = function () {
                // flag 用于控制全選按鈕是否選中
                var flag = true;
                // 每次點(diǎn)擊下面的復(fù)選框都要循環(huán)檢查4個(gè)復(fù)選框是否全被選中了
                for (var i = 0; i < j_tbs.length; i++) {
                    console.log('---'+j_tbs[i].checked);
                    if (j_tbs[i].checked == false) {  // 有一個(gè)按鈕沒(méi)有被選中就執(zhí)行內(nèi)部代碼修改flag的值為false
                        flag = false;
                        break;  // 退出里層for循環(huán),這樣可以提高執(zhí)行效率,因?yàn)橹灰幸粋€(gè)沒(méi)有被選中,剩下的就無(wú)需再判斷了
                    }
                }
                j_cbAll.checked = flag; // 循環(huán)結(jié)束后將flag的值給全選按鈕
            }
        }
</script>

執(zhí)行代碼截圖:

點(diǎn)擊全選時(shí):再點(diǎn)擊一次:

當(dāng)選中下方的復(fù)選框時(shí):

注:下方的四個(gè)復(fù)選框沒(méi)有被全選則上方的全選按鈕不會(huì)被選中。

內(nèi)部JS實(shí)現(xiàn)思路主要分為兩部分:第一部分是“全選”按鈕的功能,當(dāng)它為選中時(shí)那么下面的所有復(fù)選框的checked = true,注意:這個(gè)值是本功能實(shí)現(xiàn)的關(guān)鍵,若“全選”按鈕為未選中狀態(tài)時(shí)則它的checked的值為false,所以再把這個(gè)值賦值給下面所有的子復(fù)選框即可;第二部分是下面的子復(fù)選框的點(diǎn)擊選中功能以及它們的狀態(tài)一起決定的“全選”按鈕的狀態(tài),下面全選中了則全選按鈕也要為選中狀態(tài),若有至少一個(gè)未選中則全選按鈕也為未選中狀態(tài),注意:子復(fù)選框的每一次被點(diǎn)擊都需要做判斷,看是否所有的復(fù)選框都被選中了。(建議結(jié)合代碼分析,代碼內(nèi)含詳細(xì)注釋解析)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • javascript設(shè)計(jì)模式 – 單例模式原理與應(yīng)用實(shí)例分析

    javascript設(shè)計(jì)模式 – 單例模式原理與應(yīng)用實(shí)例分析

    這篇文章主要介紹了javascript設(shè)計(jì)模式 – 單例模式原理與應(yīng)用,結(jié)合實(shí)例形式分析了javascript單例模式原理、定義、應(yīng)用場(chǎng)景及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • 微信小程序支付PHP代碼

    微信小程序支付PHP代碼

    這篇文章主要為大家詳細(xì)介紹了微信小程序支付的PHP實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 原生JS實(shí)現(xiàn)小小的音樂(lè)播放器

    原生JS實(shí)現(xiàn)小小的音樂(lè)播放器

    這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)音樂(lè)播放器,支持循環(huán)、隨機(jī)播放,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • javascript實(shí)現(xiàn)網(wǎng)頁(yè)中涉及的簡(jiǎn)易運(yùn)動(dòng)(改變寬高、透明度、位置)

    javascript實(shí)現(xiàn)網(wǎng)頁(yè)中涉及的簡(jiǎn)易運(yùn)動(dòng)(改變寬高、透明度、位置)

    這篇文章主要介紹了javascript實(shí)現(xiàn)網(wǎng)頁(yè)中涉及的簡(jiǎn)易運(yùn)動(dòng),比如改變寬高、透明度、位置等,感興趣的小伙伴們可以參考一下
    2015-11-11
  • eval與window.eval的差別分析

    eval與window.eval的差別分析

    eval與window.eval的差別分析,學(xué)習(xí)js的朋友可以了解下。
    2011-03-03
  • 最新評(píng)論

    承德县| 乌审旗| 抚远县| 江阴市| 台中县| 收藏| 会泽县| 高清| 弋阳县| 当涂县| 怀安县| 博罗县| 阳春市| 澄城县| 清水县| 达州市| 九龙县| 扎鲁特旗| 阿拉善左旗| 旌德县| 读书| 清苑县| 农安县| 玉屏| 望谟县| 沐川县| 阜阳市| 玛纳斯县| 辰溪县| 乐至县| 嘉善县| 两当县| 黑龙江省| 弋阳县| 沈阳市| 中宁县| 八宿县| 镇雄县| 赫章县| 新建县| 娱乐|