JavaScript實現簡單版的留言發佈與刪除

首先用戶在輸入框中輸入內容,按下發佈按鈕,內容到下面的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留言發佈刪除內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: