Javascript动态添加页面元素及设置属性(div、li、img)

网页是由 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("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");

现在比较流行jquery

代码如下:

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

代码如下:

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

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

$('.clickme').live('click', function() { // Live handler called. });这样,你即使在后面动态插入的元素,也会被绑定事件,$('body').append('<div class="clickme">Another target</div>');
定义和用法
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])<SPAN style="WHITE-SPACE: normal"> </SPAN>

die([type], [fn])

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

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

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

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

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

例子

.jquery创建元素

 function CreateDom() {
               var select = $("<select/>").appendTo($("body"));
            var option1 = $("<option value=\"1\">text1</option>").appendTo(select);
            var option2 = $("<option value=\"2\">text2</option>").appendTo(select);
            var option3 = $("<option value=\"3\">text3</option>").appendTo(select);
            var text = $("<input type=\"text\">").css({ "width": "150px", "border": "1px lightgrey solid" }).appendTo($("body"));
            var checkbox = $("<input type=\"checkbox\" />").appendTo($("body"));
            var ul = $("<ul/>").appendTo($("body"));
            var li = $("<li>li1</li>").appendTo(ul);
            var li = $("<li>li2</li>").appendTo(ul);

  }

时间: 2024-10-03 12:07:37

Javascript动态添加页面元素及设置属性(div、li、img)的相关文章

用js动态添加html元素,以及属性的简单实例_javascript技巧

用js动态添加html元素,以及属性的简单实例 function test(){ //创建节点 var lswt_2=document.createElement("div"); //设置节点id lswt_2.id='lswtColse'; //设置节点属性 lswt_2.style.width='11px'; lswt_2.style.height='10px'; lswt_2.style.top='0px'; lswt_2.style.right='0px'; lswt_2.st

DHTML的四个属性来动态操作页面元素的内容

dhtml|动态|页面 IE的DHTML对象提供了四个可读写的属性来动态操作页面元素的内容:innerText, outerText, innerHTML, outerHTML. 需注意两点: 1. 其中innerText,outerText属性的值是作为普通文本呈现的,即使它含有HTML标签也如实反应出来;而innerHTML, outerHTML呈现的是经HTML引擎解析后文本,它可以反应属性中HTML标签的表现效果. 2. 对对象的outerText,outerHTML属性赋值(即写操作)

使用javascript动态添加数据到 HTML 页面

今天简单的学习了一下有关对象字面量的定义和 javascript 如何取出对象字面量的值的知识,javascript 动态添加数据到 HTML 页面的问题. [学习目标]有如下的一组数据通过 Ajax 传递过来: var dataList = [ { state: 2, // 0:sharing 1:unJoin 2:sharingEnd name: '客户1', phone: 13675896031 }, { state: 1, // 0:sharing 1:unJoin 2:sharingE

JavaScript动态的为元素添加事件

目前的的页面布局都是基于XHTML,通过DIV+CSS布局,实现DHTML的样式.所以这个JavaScript动态的为元素添加事件因此而普遍了.下面我说说怎样通过javascript为元素动态的添加事件.Javascript为元素动态的添加事件包括两种情况:不带参数的事件和带参数的事件.一.不带参数的事件:两种方式:直接给对象添加事件,节点添加事件例如给一个id为tab1的添加onclick事件第一种情况:var t = document.getElementById("NewTitle&quo

javascript动态添加、修改、删除对象的属性与方法详解_javascript技巧

现在介绍如何为一个对象添加.修改或者删除属性和方法.在其他语言中,对象一旦生成,就不可更改了,要为一个对象添加修改成员必须要在对应的类中修改,并重新实例化,而且程序必须经过重新编译.JavaScript 中却非如此,它提供了灵活的机制来修改对象的行为,可以动态添加.修改.删除属性和方法.例如首先使用类Object来创建一个空对象user:var user=new Object(); 1.添加属性这时user 对象没有任何属性和方法,显然没有任何用途.但可以为它动态的添加属性和方法,例如:user

javascript动态添加表格数据行(ASP后台数据库保存例子)_javascript技巧

在很多web应用中,我们会遇到很多需要动态插入多行纪录的地方.比如,在人才网站上,我们填写简历的时候,我们要填写我们的项目经验,我们可以根据自己的实际情况动态的添加条数,这种不是以单独页面的形式添加,这种动态添加是在同一个页面下动态添加,最后再一起提交到服务器保存到数据库中. 本文,我将以一个类似的例子来做一个前台用Javascript动态添加数据项,后台保存到数据库的例子. 浏览器:IE.6.0 后台:ASP (VBScript ) 前台:HTML + JavaScript HTML代码: 复

javascript 动态添加表格行

javascript|动态 介绍如何使用javascript动态添加表格行,并对其中的方法做详细的说明 动态添加表格行 文/Ray  表格部分代码如下: <table id="testTbl" border=1> <tr id="tr1"> <td width=6%><input type=checkbox id="box1"></td> <td id="b"&

JavaScript动态添加css样式和script标签_javascript技巧

[动态添加css样式] <html> <head> <script type="text/javascript"> window.onload=function(){ var head=document.getElementsByTagName('head')[0]; //获取到head元素 var link=document.createElement('link'); //创建link元素节点,也就是link标签 link.rel="s

JavaScript动态添加列的方法_javascript技巧

本文实例讲述了JavaScript动态添加列的方法.分享给大家供大家参考.具体实现方法如下: /*** * 动态添加table 列 * @param result */ function addRow(resultJson){ /* var temp = []; temp = $.grep(arr, function(val, key) { if(val.indexOf('c') != -1) return true; // 如果[invert]参数不给或为false, $.grep只收集回调函