javascript学习指南_Javascript动态添加页面元素及设置属性(div、li、img)

更新时间:2019-10-10    来源:js教程    手机版     字体:

【www.bbyears.com--js教程】

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

 
一、js 动态添加元素div

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

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

//设置 div 属性,如 id
div.setAttribute("id", "newDiv");

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

调用:addElementDiv("parent");

 

 

二、js 动态添加li

    原li

    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

      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");


      现在比较流行jquery

      代码如下:

      $("input").click(function () {
      //处理代码
      });
       

      代码如下:

      $(".clickme").bind("click", function() {
      // Bound handler called.
      });
       

      但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定。即使你使用jquery的clone函数,它并不能将事件也复制(到目前为止我还不清楚它是为什么这样定义,是没法复制还是刻意这么处理,以防止出现某些异常,这还有待去分析一下jquery的源代码)。
      现在,使用live你可以轻松搞定,

      $(".clickme").live("click", function() { // Live handler called. });这样,你即使在后面动态插入的元素,也会被绑定事件,$("body").append("Another target");
      定义和用法
      live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。

      通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。

       

      问题:使用jQuery的live()方法绑定事件,有时会出现重复绑定的情况,如,当点击一个按钮时,此按钮所绑定的事件会并执行n遍。

      解决:使用die()方法,在live()方法绑定前,将此元素上的前面被绑定的事件统统解除,然后再通过live()方法绑定新的事件。

       

      Js代码
      //先通过die()方法解除,再通过live()绑定
      $("#selectAll").die().live("click",function(){
      //事件运行代码
      });
      //先通过die()方法解除,再通过live()绑定
      $("#selectAll").die().live("click",function(){
        //事件运行代码
       });die()方法简介:

       

      Js代码
      die([type], [fn])

      die([type], [fn])

      概述
      jQuery 1.3新增。此方法与live正好完全相反。

      如果不带参数,则所有绑定的live事件都会被移除。

      你可以解除用live注册的自定义事件。

      如果提供了type参数,那么会移除对应的live事件。

      如果也指定了第二个参数function,则只移出指定的事件处理函数。

      例子

      .jquery创建元素

       function CreateDom() {
                     var select = $("").css({ "width": "150px", "border": "1px lightgrey solid" }).appendTo($("body"));
                  var checkbox = $("").appendTo($("body"));
                  var ul = $("

热门标签

更多>>

本类排行