首頁 > 軟體

JavaScript實現簡單版的留言釋出與刪除

2022-03-08 19:00:48

首先使用者在輸入框中輸入內容,按下發布按鈕,內容到下面的li中,並且清空輸入框中的內容

下面這個li元素就是後面建立的

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        textarea {
            resize: none;
            border: 1px solid pink
        }
    </style>
</head>
 
<body>
    <textarea name="" id="" cols="30" rows="10"></textarea>
    <button>釋出</button>
    <ul>
 
    </ul>
    <script>
        //點選釋出按鈕,獲取文字域中的文字,給下面新建立li中的值
        //獲取文字方塊元素、按鈕元素
        var text = document.querySelector('textarea')
        var btn = document.querySelector('button')
        var ul = document.querySelector('ul')
 
 
        //當按下按鈕後就建立新的li元素,放到ul的後面
        btn.onclick = function() {
            //建立li元素   因為是每按一次按鈕,下面就會新增一個li,需要用到迴圈
            //需要判斷,當文字方塊裡面的內容為空時,按下按鈕是不會新增的
            if (text.value != '') {
                var li = document.createElement('li')
                ul.appendChild(li)
                    //新增節點
                    //賦值li裡面的內容
                li.innerHTML = text.value
                    //按下按鈕後,文字方塊裡面的值要清空
                text.value = ''
            }
 
        }
    </script>
</body>
 
</html>

分析:

1、點選按鈕後,就動態建立一個li,新增到ul裡面

2、建立li的同時,把文字域中的值通過li.innerHTML賦給li

3、如果想把新的留言顯示到後面就用appendChild,如果顯示到前面就用insertBefore

怎麼實現放在前面:

並且實現刪除留言的案例:

新增li後面對應新增一個刪除按鈕

1、把文字域的值賦值給li的同時多加一個刪除的連結

2、需要把每個連結獲取過來,當點選某一個連結的時候,刪除當前連結所在的li;也就是當前連結的父親

3、阻止連結跳轉可以新增javascript:void(0),或者javascript:;

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        textarea {
            resize: none;
            border: 1px solid pink
        }
        
        li {
            background-color: pink;
            margin-top: 2px;
            width: 630px;
            height: auto;
            line-height: 30px;
        }
        
        p {
            font-size: 15px;
            margin-top: 0px;
            float: left;
        }
        
        button {
            width: 50px;
            height: 30px
        }
        
        li a {
            float: right;
        }
    </style>
</head>
 
<body>
    <textarea name="" id="" cols="30" rows="10"></textarea>
    <button class="btn">釋出</button>
    <ul>
 
    </ul>
    <script>
        //點選釋出按鈕,獲取文字域中的文字,給下面新建立li中的值
        //獲取文字方塊元素、按鈕元素
        var text = document.querySelector('textarea')
        var btn = document.querySelector('.btn')
        var ul = document.querySelector('ul')
        console.log()
 
        //當按下按鈕後就建立新的li元素,放到ul的後面
        btn.onclick = function() {
            //建立li元素   因為是每按一次按鈕,下面就會新增一個li,需要用到迴圈
            //需要判斷,當文字方塊裡面的內容為空時,按下按鈕是不會新增的
            if (text.value != '') {
                var li = document.createElement('li')
                    //li裡面建立一個p放內容
                    // var p = document.createElement('p')
                    // var dele = document.createElement('button')
                    // ul.appendChild(li)
                ul.insertBefore(li, ul.children[0])
                    //在li裡面新增p
                    // console.log(ul.children[0])
                    // ul.children[0].appendChild(p)
                    //在li裡面新增刪除按鈕
                    // ul.children[0].appendChild(dele)
 
                //新增節點
                //賦值li裡面的內容
                li.innerHTML = text.value + "<a href='javascript:;'>刪除</a>"
                    // dele.innerHTML = '刪除'
                    // dele.style.float = 'right'
                    //按下按鈕後,文字方塊裡面的值要清空
                text.value = ''
                    //刪除元素,刪除的是li,當前a連結的父親
                var as = document.querySelectorAll('a')
                for (var i = 0; i < as.length; i++) {
                    as[i].onclick = function() {
                        //node.removeChild(child)
                        //  this.parentNode    li       父親為ul
                        ul.removeChild(this.parentNode)
                    }
                } //這個迴圈操作為什麼放在按鈕點選事件外面就不會起作用
 
            }
 
        }
    </script>
</body>
 
</html>

到此這篇關於JavaScript實現簡單版的留言釋出與刪除的文章就介紹到這了,更多相關JavaScript留言釋出刪除內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com