JS动态添加div、li、img等元素及设置属性(实例)

把一串 html 标签赋给一个 javascript 变量,除属性的值要用转义的双引号外,某些时候字符串还很长,显得有些复杂。如果用 js 动态添加元素,就不会有那么复杂的字符串出现,代码阅读性强一点,也容易理解。

  网页是由 html 标签一层层组成的,js 也可以动态添加一层层的诸如 div、li、img 这样的标签。其实,不管是什么 html 标签,js 动态创建的方法都差不多,接着就先从动态添加 div 开始。

 

  一、js 动态添加元素div

  <div id="parent"></div>

  function addElementDiv(obj) {
    var parent = document.getElementById(obj);

    //添加 div
    var div = document.createElement("div");

    //设置 div 属性,如 id ;若是样式则设置方式为:div.setAttribute('class','你要添加的样式CLASS名');
    div.setAttribute("id", "newDiv");

    div.innerHTML = "js 动态添加div";
    parent.appendChild(div);
  }

  调用:addElementDiv("parent");

 

 

  二、js 动态添加li

  <ul id="parentUl"><li>原li</li></ul>

  function addElementLi(obj) {
    var ul = document.getElementById(obj);

    //添加 li
    var li = document.createElement("li");

    //设置 li 属性,如 id
    li.setAttribute("id", "newli");

    li.innerHTML = "js 动态添加li";
    ul.appendChild(li);
  }

  调用:addElementLi("parentUl");

 

 

  三、js 动态添加元素img

  <ul id="parentUl"></ul>

  function addElementImg(obj) {
    var ul = document.getElementById(obj);

    //添加 li
    var li = document.createElement("li");

    //添加 img
    var img = document.createElement("img");

    //设置 img 属性,如 id
    img.setAttribute("id", "newImg");

    //设置 img 图片地址
    img.src = "/images/prod.jpg";

    li.appendChild(img);
    ul.appendChild(li);
  }

  调用:addElementImg("parentUl");

转自:https://blog.csdn.net/qq_33428652/article/details/51583792

补充强化:

li指定位置新增

var nodeli = document.createElement('li');//创建一个li节点

var nodeul = document.getElementsById("ul");//获取UL节点

var nodeli1 = nodeul.getElementsById('li');//获取已存在li节点
 nodeul.insertBefore(nodeli,nodeli1);//函数insertBefore()表示在哪个节点前添加。第一个参数为要插入的新节点,第二个参数为已有节点

li 元素删除

 //为删除按钮添加删除节点功能
          function delBtnData(obj){
          var ul=document.getElementById("J_List");
              var oLi=obj.parentNode.parentNode;  
              //obj.parentNode指删除按钮的span层
             //obj.parentNode.parentNode为li层
              ul.removeChild(oLi);
          }  

知识点:innerHTML(需注意双引号”或\ 需用 / 转义)。
知识点:createElement创建元素,setAttribute设置元素属性,innerHTML设置元素值,appendChild添加元素,parentNode获取父节点(parentNode是W3C标准的,parentElement 只在IE中可用. ),removeChild删除子节点。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现动态标签栏,可以使用HTML、CSS和JavaScript来实现。 1. 首先在HTML中创建一个标签栏的容器,如ul标签。 2. 使用CSS设置标签栏的样式,包括背景颜色、边框样式、字体大小和颜色等。 3. 使用JavaScript动态地创建标签栏中的标签,并为每个标签添加事件处理函数。可以使用DOM操作来实现这个过程。 4. 在事件处理函数中,根据用户的操作来修改标签栏的状态,例如切换标签、显示不同内容等。 下面是一个简单的示例代码: HTML代码: ``` <ul id="tab-bar"></ul> <div id="content"></div> ``` CSS代码: ``` #tab-bar { list-style: none; margin: 0; padding: 0; background-color: #eee; border-bottom: 1px solid #ccc; } #tab-bar li { display: inline-block; padding: 10px; cursor: pointer; } #tab-bar li.active { background-color: #fff; border-bottom: none; } #content { padding: 20px; background-color: #fff; border: 1px solid #ccc; } ``` JavaScript代码: ``` var tabs = [ {title: 'Tab 1', content: 'Content of tab 1'}, {title: 'Tab 2', content: 'Content of tab 2'}, {title: 'Tab 3', content: 'Content of tab 3'} ]; var activeTab = 0; var tabBar = document.getElementById('tab-bar'); var content = document.getElementById('content'); for (var i = 0; i < tabs.length; i++) { var tab = document.createElement('li'); tab.textContent = tabs[i].title; tab.addEventListener('click', function(index) { return function() { activeTab = index; updateTabs(); }; }(i)); tabBar.appendChild(tab); } function updateTabs() { for (var i = 0; i < tabs.length; i++) { if (i === activeTab) { tabBar.children[i].classList.add('active'); content.textContent = tabs[i].content; } else { tabBar.children[i].classList.remove('active'); } } } updateTabs(); ``` 在这个示例中,我们使用了一个数组来保存标签栏中的标签信息。在页面加载完成后,我们使用JavaScript动态地创建标签,并为每个标签添加了点击事件处理函数。在事件处理函数中,我们修改了activeTab变量的值,并调用updateTabs函数来更新标签栏和内容区域的状态。updateTabs函数根据activeTab变量的值来切换当前标签,并显示相应的内容。通过这种方式,我们实现了一个简单的动态标签栏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值