Blogger Information
Blog 11
fans 0
comment 0
visits 6703
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
ToList留言、JS动态表格——2019年1月17日
离歌浅唱醉人心丶的博客
Original
759 people have browsed it

ToList留言并有删除功能

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ToList添加删除功能</title>
</head>
<body>
<h3>请在下方留言</h3>
<input type="text" placeholder="请输入留言内容">
<ul></ul>

<script>
    var comment = document.querySelector('input'); // 获取输入框的内容
    var ul = document.getElementsByTagName('ul').item(0);
    comment.focus();
    comment.onkeydown = function (event) {
        //当用户按下回车键时触发
        if (event.keyCode === 13) {
            var li = document.createElement('li');

            // innerText不能解析文本中的html代码,要换成innerHTML
            li.innerHTML = comment.value + '<a href="javascript:;" onclick="del(this)">删除</a>';  // 将删除按钮添加到留言内容的后面

            //如果没有留言就新建一个li标签
            if (ul.childElementCount === 0) {
                ul.appendChild(li);
            } else {
                // 如果列表已有留言,则插入到新一条之前
                var first = ul.firstElementChild;
                ul.insertBefore(li,first);
            }

            // 清空留言区,并设置焦点
            comment.value = '';
            comment.focus();
        }
    };

    function del(ele) {
        if (confirm('是否删除?')) {
            var li = ele.parentNode;
            li.parentNode.removeChild(li);
        }
        return false;
    }
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


使用JS动态一张表格,数据用数组进行模拟

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js操作表格的基本技巧</title>
    <style>
        table,th,td{
            border: 2px solid #c9cca7;
        }
        table {
            width: 700px;
            text-align: center;
            border-collapse: collapse;
        }
        table caption {
            font-size: 16px;
            margin-bottom: 10px;
        }
        /* 这里必须在nth-of-type(1)前添加父元素,否则thead,tbody中的第一行都会生效 */
        thead tr:nth-of-type(1) {
            background-color: #beff7f;
        }
    </style>
</head>
<body>
<table id="cart1">
    <caption>购物车1</caption>
    <!-- 为防止作用js获取元素出错,我们手工添加上这个tbody -->
    <!-- 将表头手工加上thead,否则会被添加二个tbody,因为table允许使用多个tbody -->
    <thead>
        <tr>
            <th>编号</th>
            <th>品名</th>
            <th>数量</th>
            <th>单价</th>
        </tr>
    </thead>

    <tbody>
        <tr>
            <td>1</td>
            <td>小号</td>
            <td>1</td>
            <td>3000</td>
        </tr>
        <tr>
            <td>2</td>
            <td>长号</td>
            <td>1</td>
            <td>4000</td>
        </tr>
        <tr>
            <td>3</td>
            <td>大号</td>
            <td>1</td>
            <td>10000</td>
        </tr>
    </tbody>
</table>

<hr>

<table id="cart2">
    <caption>购物车2</caption>
    <thead>
        <tr>
            <th>编号</th>
            <th>品名</th>
            <th>数量</th>
            <th>单价</th>
        </tr>
    </thead>
    <tbody></tbody>
</table>

<hr>

<table id="cart3">
    <caption>购物车3</caption>
    <thead>
    <tr>
        <th>编号</th>
        <th>品名</th>
        <th>数量</th>
        <th>单价</th>
    </tr>
    </thead>
    <tbody></tbody>
</table>

<script>
    // 获取电脑和单价
    var trombone = document.getElementById('cart1');
    // 长号的位置
    console.log(trombone.children[2].children[1].children[1].innerHTML);
    // 长号的价格
    console.log(trombone.children[2].children[1].children[3].innerHTML);
    // 更新长号的价格 —— 3000
    trombone.children[2].children[1].children[3].innerHTML = 3000;
    /*
        table对象定义一些属性,可以快速获取指定的子元素
        1. tHead: <thea>
        2. tBodies: <tbody>...复数
        3. tFoot: <tfoot>
        4. rows: 所有行
        5. cells: 所有列
    */
    console.log(trombone.tBodies[0].rows[1].cells[3].innerHTML);

    var data = [
        {id: 1, name: '98K', count: 1, price: 1050},
        {id: 1, name: 'M24', count: 1, price: 2080},
        {id: 1, name: 'AWM', count: 1, price: 30600}
    ];

    var cart2 = document.getElementById('cart2');
    // 获取到tbody
    var tbody = cart2.children[2];
    data.forEach(function (value){
        var tr = document.createElement('tr');
        tr.innerHTML = '<td>' + value.id + '</td>';
        tr.innerHTML += '<td>' + value.name + '</td>';
        tr.innerHTML += '<td>' + value.count + '</td>';
        tr.innerHTML += '<td>' + value.price + '</td>';
        tbody.appendChild(tr);
    });

    var cart3 = document.getElementById('cart3');
    var tbody = cart3.tBodies[0];    //获取所有tbody标签里面的内容
    for (var i = 0; i < data.length; i++) {
        var tr = document.createElement('tr'); //新建tr标签,里面存放data里面的内容
        Object.keys(data[i]).forEach(function(key){
            tr.innerHTML += '<td>' + data[i][key] + '</td>'; //将data里面的每一个对象里面的买一个数据填充到<td>标签里面
        });
        tbody.appendChild(tr);
    }
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例



Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post