js入門系列(7)--標(biāo)簽的追加、創(chuàng)建和刪除

一备韧、標(biāo)簽的追加劫樟、刪除和創(chuàng)建

1.追加

①在標(biāo)簽的內(nèi)容追加
??1.1 a.append(b) 把b追加到a內(nèi)容的后面
??1.2 a.prepend(b) 把b追加到a內(nèi)容的前面
②在標(biāo)簽的同級追加
??2.1 a.before(b) 把b追加到a的同級之前
??2.2 a.after(b) 把b追加到a的同級之后

<style>
    .warp{
            width: 100px;
            height: 100px;
            border: 1px solid pink;
            margin: 0px auto ;
    }
    .bigwarp{
            width: 200px;
            height: 200px;
            border: 2px solid blue;
            margin: 0px auto;
            padding-top: 40px;
            box-sizing: border-box;
    }
    .con{
            text-align: center;
    }
</style>
<body>
    <div class="bigwarp">
        <div class="warp"></div>
        <p class="con">標(biāo)簽的追加</p>
    </div>
</body>
<script>
    var owarp=document.getElementsByClassName('warp');
    var ocon=document.getElementsByClassName('con');
    owarp[0].append(ocon[0]);
    //owarp[0].preappend(ocon[0]);
    //owarp[0].before(ocon[0]);
    //owarp[0].after(ocon[0]);
</script>

2.刪除標(biāo)簽

①a.remove()

owarp.remove();

②a.parentNode.removeChild(a);

3.創(chuàng)建:document.createElement('標(biāo)簽名')

結(jié)合上面的例子,給出表格的簡單增加和刪除案例
表格的HTML和CSS樣式直接如下面的代碼所示:

        <style>
            *{
                margin: 0px;
                padding: 0px;
                list-style: none;
            }
            td{
                border: 1px solid black;
                width: 100px;
                text-align: center;
            }
            table{
                border-collapse: collapse;
                margin: 30px 0px 0px 0px;
            }
            ul::after{
                content: "";
                display: block;
                clear: both;
            }
            ul li{
                float: left;
                margin-right: 10px;
            }
            #del{
                cursor: pointer;
                text-decoration: underline;
            }
        </style>

    <body>
        <ul>    
            <li >姓名 :<input type="text" id="sname"></li>
            <li >班級 :<input type="text" id="sclass"></li>
            <li><button id="bot">添加</button></li>
            <li><button id="delall">批量刪除</button></li>
        </ul>
        <table id="warp">
            <tr>
                <td>選擇</td>
                <td>姓名</td>
                <td>班級</td>
                <td>操作</td>
            </tr>
            <tr id="deltr">
                <td id="box"><input type="checkbox" ></td>
                <td>張三</td>
                <td>軟件</td>
                <td><span id="del">刪除</span></td>
            </tr>
        </table>
            <button id="one">全選</button>
            <button id="two">反選</button>
            <button id="three">全不選</button>
    </body>
效果圖.png

一织堂、增加功能

1.創(chuàng)建標(biāo)簽:由效果圖和HTML結(jié)構(gòu)可以看出叠艳,表單是由tblae構(gòu)成,行由tr構(gòu)成易阳,小單元格由td構(gòu)成附较,所以創(chuàng)建標(biāo)簽時只需要創(chuàng)建tr和td即可

// 創(chuàng)建標(biāo)簽
var stutr=document.createElement('tr');
var studel=document.createElement('td');

2.填充內(nèi)容:新創(chuàng)建的標(biāo)簽內(nèi)容是空白的,我們需要往里面填充內(nèi)容潦俺。
①靜態(tài)填充:可以知道操作下的“刪除”是一樣的拒课,直接將整個標(biāo)簽填充即可
??要注意事示,如果想新創(chuàng)建的標(biāo)簽也和原來的標(biāo)簽擁有同樣的樣式或者事件早像,就要加上相應(yīng)的類名或者事件。比如本例中的 “id=del”

studel.innerHTML='<span id="del">刪除</span>';

②動態(tài)填充:為新的標(biāo)簽填充的姓名和班級的具體數(shù)值來自用戶肖爵,用戶輸入什么就填充什么卢鹦,所以我們需要用“獲取標(biāo)簽.value”來獲取輸入框的內(nèi)容,然后將獲取的內(nèi)容填充到新的標(biāo)簽中劝堪。
??要注意的是sname.value和sclass.value是變量冀自,不能用引號包裹

// 給新的標(biāo)簽加內(nèi)容--輸入框可以通過類名添加,其余文本可以直接作為HTML的內(nèi)容插進(jìn)去
stutr.innerHTML='<td><input type="checkbox"></td><td>'+sname.value+'</td><td>'+sclass.value+'</td>';

3.追加標(biāo)簽
??將上面新創(chuàng)建的標(biāo)簽直接追加在原來標(biāo)簽的后面即可

// 追加標(biāo)簽
stutr.appendChild(studel);
warp.appendChild(stutr);

表單的增加功能就此大功告成秒啦,接下來是單刪除功能

二熬粗、刪除功能

1.刪除單條
??直接為“刪除”綁定點(diǎn)擊事件,因?yàn)椤皠h除”是用td裝載的余境,所以當(dāng)用戶點(diǎn)擊刪除時驻呐,應(yīng)當(dāng)刪除當(dāng)前td所在的父級tr

//新創(chuàng)建的標(biāo)簽的刪除功能
studel.onclick=function(){
        stutr.parentNode.removeChild(stutr);
}
//原本標(biāo)簽的刪除功能
del.onclick=function(){
        deltr.parentNode.removeChild(deltr);
}

2.批量刪除
①選框的選中
全選的思路是遍歷所有的選框,并將check置為true芳来;
全不選的思路是遍歷所有的選框暴氏,并將check置為false;
反選的思路是 首先獲取原本選框的check绣张,通過"!"取反操作即可。

// 選框的內(nèi)容
//全選
one.onclick=function(){
    for(var i=0;i<tag.length;i++){
            tag[i].checked=true;
    }
}
//反選
two.onclick=function(){
    for(var i=0;i<tag.length;i++){
            tag[i].checked= !tag[i].checked;
    }
}
//全不選
three.onclick=function(){
    for(var i=0;i<tag.length;i++){
            tag[i].checked=false;
    }
}

②批量刪除

// 批量刪除
var table = document.getElementsByTagName('table')[0];
var tag=table.getElementsByTagName('input');
// 選擇table中的input
delall.onclick=function(){
    if(confirm('確認(rèn)刪除关带?')){
        for(var i=0;i<tag.length;i++){
            if(tag[i].checked){
                    tag[i].parentNode.parentNode.parentNode.removeChild(tag[i].parentNode.parentNode);
                    i--;
            }       
        }
    }
}

此外侥涵,為了更加的貼合生活沼撕,下面給出完整的代碼,就多了幾個if語句作為彈出框芜飘。

        <script>
        bot.onclick=function(){
            if((sname.value=='') || (sclass.value=='')) {
                alert('姓名和班級不能為空');
                // 比較是用==N癫颉!`旅鳌Aぁ!H⑴啤1记场!J肌P阼搿!<N杪妗!>独蟆6角荨!
            }
            else{
                // 創(chuàng)建標(biāo)簽
                var stutr=document.createElement('tr');
                var studel=document.createElement('td');

                // 給新的標(biāo)簽加內(nèi)容--輸入框可以通過類名添加总处,其余文本可以直接作為HTML的內(nèi)容插進(jìn)去
                studel.innerHTML='<span id="del">刪除</span>';
                stutr.innerHTML='<td><input type="checkbox"></td><td>'+sname.value+'</td><td>'+sclass.value+'</td>';

                // 追加標(biāo)簽
                stutr.appendChild(studel);
                warp.appendChild(stutr);

                //刪除標(biāo)簽
                studel.onclick=function(){
                    console.log(11);
                    stutr.parentNode.removeChild(stutr);
                }
                
                // 選框的內(nèi)容
                one.onclick=function(){
                    for(var i=0;i<tag.length;i++){
                        tag[i].checked=true;
                    }
                }
                two.onclick=function(){
                    for(var i=0;i<tag.length;i++){
                        tag[i].checked= !tag[i].checked;
                    }
                }
                three.onclick=function(){
                    for(var i=0;i<tag.length;i++){
                        tag[i].checked=false;
                    }
                }

                // 批量刪除
                var table = document.getElementsByTagName('table')[0];
                var tag=table.getElementsByTagName('input');
                // 選擇table中的input
                delall.onclick=function(){
                    if(confirm('確認(rèn)刪除狈惫?')){
                        for(var i=0;i<tag.length;i++){
                        if(tag[i].checked){
                            tag[i].parentNode.parentNode.parentNode.removeChild(tag[i].parentNode.parentNode);
                            i--;
                        }
                        
                    }
                }
                    }
                    

            }
        }   
        del.onclick=function(){
            deltr.parentNode.removeChild(deltr);
        }
        </script>
表單.gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市辨泳,隨后出現(xiàn)的幾起案子虱岂,更是在濱河造成了極大的恐慌,老刑警劉巖菠红,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件第岖,死亡現(xiàn)場離奇詭異,居然都是意外死亡试溯,警方通過查閱死者的電腦和手機(jī)蔑滓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遇绞,“玉大人键袱,你說我怎么就攤上這事∧∶觯” “怎么了蹄咖?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長付鹿。 經(jīng)常有香客問我澜汤,道長蚜迅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任俊抵,我火速辦了婚禮谁不,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘徽诲。我一直安慰自己刹帕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布谎替。 她就那樣靜靜地躺著偷溺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪院喜。 梳的紋絲不亂的頭發(fā)上亡蓉,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機(jī)與錄音喷舀,去河邊找鬼砍濒。 笑死,一個胖子當(dāng)著我的面吹牛硫麻,可吹牛的內(nèi)容都是我干的爸邢。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼拿愧,長吁一口氣:“原來是場噩夢啊……” “哼杠河!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起浇辜,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤券敌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后柳洋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體待诅,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年熊镣,在試婚紗的時候發(fā)現(xiàn)自己被綠了卑雁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡绪囱,死狀恐怖测蹲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鬼吵,我是刑警寧澤扣甲,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站齿椅,受9級特大地震影響文捶,放射性物質(zhì)發(fā)生泄漏荷逞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一粹排、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧涩澡,春花似錦顽耳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粥帚,卻和暖如春胰耗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芒涡。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工柴灯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人费尽。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓赠群,卻偏偏與公主長得像,于是被迫代替她去往敵國和親旱幼。 傳聞我的和親對象是個殘疾皇子查描,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 瀏覽器與服務(wù)器的基本概念 瀏覽器(安裝在電腦里面的一個軟件) 作用: ①將網(wǎng)頁內(nèi)容渲染呈現(xiàn)給用戶查看。 ②讓用戶通...
    云還灬閱讀 1,102評論 0 0
  • 一柏卤、理論基礎(chǔ)知識部分 1.1冬三、講講輸入完網(wǎng)址按下回車,到看到網(wǎng)頁這個過程中發(fā)生了什么 a. 域名解析 b. 發(fā)起T...
    我家媳婦蠢蠢噠閱讀 3,110評論 2 106
  • HTML5< !--...--> 標(biāo)簽 comment 注釋標(biāo)簽用于在源文檔中插入注釋缘缚。注釋內(nèi)容不會被瀏覽器顯示勾笆。...
    野小寶閱讀 1,313評論 0 10
  • HTML5 標(biāo)簽comment 注釋標(biāo)簽用于在源文檔中插入注釋。注釋內(nèi)容不會被瀏覽器顯示忙灼。為代碼編寫注釋的好處是...
    才気莮孒閱讀 4,045評論 1 25
  • 概述 在網(wǎng)易云課堂學(xué)習(xí)李南江老師的《從零玩轉(zhuǎn)HTML5前端+跨平臺開發(fā)》時匠襟,所整理的筆記。筆記內(nèi)容為根據(jù)個人需求所...
    墨荀閱讀 2,331評論 0 7