JS使用DOM对元素进行添加和修改

将select中的数据添加到table中,重复的则进行修改,代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>DOM添加和修改节点</title>
    <script language="JavaScript">
        function addLanguage(){
            //获取所有的td节点
            var tdNode = document.getElementsByTagName("td");
            //获取select选择的值
            var lan = document.getElementById("language").value;
            var exp = document.getElementById("experience").value;
            //是否新建节点,true则新建一组tr项,false则修改已存在的tr项
            var flag = true;
            //判断是否存在该节点
            for(var i = 0;i < tdNode.length;i++){
                //存在该节点,则执行下面的语句,修改其父节点的第二个子节点的文本节点
                if(lan == tdNode[i].firstChild.nodeValue){
                    tdNode[i].parentNode.childNodes[1].firstChild.nodeValue = exp;
                    //将标志位设置为false
                    flag = false;
                    break;
                }
            }
            //不存在该节点执行下面的语句
            if(flag) {
                //新建 语言 和 熟练度 的文本节点
                var lanElement = document.createTextNode(lan);
                var expElement = document.createTextNode(exp);
                //新建 语言 和 熟练度 的td节点
                var lanTdElement = document.createElement("td");
                var expTdElement = document.createElement("td");
                //新建 语言 和 熟练度 的tr节点
                var trElement = document.createElement("tr");
                //获取 表格 的节点
                var tab = document.getElementById("myTab");

                //将 语言 的文本节点添加到 语言的td 节点
                lanTdElement.appendChild(lanElement);
                //将 语言 的 td 节点添加到 tr 节点
                trElement.appendChild(lanTdElement);
                //将 熟练度 的文本节点添加到 熟练度的td 节点
                expTdElement.appendChild(expElement);
                //将 熟练度 的 td 节点添加到 tr 节点
                trElement.appendChild(expTdElement);
                //将 tr 节点添加到 table 节点
                tab.appendChild(trElement);
            }
        }
    </script>
</head>
<body>
    语言:
    <select id="language">
        <option>---请选择语言---</option>
        <option>中文</option>
        <option>英语</option>
        <option>日语</option>
        <option>韩语</option>
    </select>
    熟练度:
    <select id="experience">
        <option>---请选择熟练度---</option>
        <option>精通</option>
        <option>熟练</option>
        <option>一般</option>
        <option>不懂</option>
    </select>
    <button οnclick="addLanguage();">添加</button>
    <table id="myTab" border="1">
        <tr>
            <td>语言</td>
            <td>熟练度</td>
        </tr>
    </table>
</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值