当前位置:首页 > Javascript技术文章 > JS实现动态添加DOM节点和事件的方法示例

JS实现动态添加DOM节点和事件的实例

  • 发布时间:
  • 作者:码农之家原创
  • 点击:217

这篇文章主要知识点是关于JS、动态、添加、DOM节点、事件、学习JS中的DOM节点以及操作 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下java相关资源

Web前端开发精品课 JavaScript基础教程

《JavaScript基础教程》 共分为2大部分,第1部分是JavaScript基础知识,主要学习JavaScript基础概念如变量、运算符、表达式等。第二部分是JavaScript进阶知识,主要学习DOM、事件操作以及各种开发技

查看详情

JS实现动态添加DOM节点和事件的方法示例

本文实例讲述了JS实现动态添加DOM节点和事件的方法。分享给大家供大家参考,具体如下:

运行效果图如下:

JS实现动态添加DOM节点和事件的方法示例

完整实例代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Js(DOM)动态添加节点和事件</title>
<script type="text/javascript">
function addEl(){
  //找到要添加节点的父节点(table)
  var tb = document.getElementById("tb");
  //创建tbody节点,表格中必须有tbody才能添加,直接添加tr不成功
  var tbody = document.createElement("tbody");
  //创建tr节点
  var tr = document.createElement("tr");
  //创建td节点
  var td = document.createElement("td");
  //添加一个文本框节点,设置id和type属性
  var newTp = document.createElement("input");
  newTp.id = "text1";
  newTp.type = "text";
  //添加一个按钮
  var newEl = document.createElement("input");
  newEl.type = 'button';
  newEl.value = "button";
  newEl.name = "button1";
  //添加onclick事件,和事件执行的函数
  newEl.onclick = function dofun(){
  document.getElementById("txt").value += newTp.value;
  }
  //把2个节点添加到td当中
  td.appendChild(newTp)
  td.appendChild(newEl);
  //把td添加到tr中
  tr.appendChild(td);
  //把tr添加到td中
  tbody.appendChild(tr);
  //把td添加到table中
  tb.appendChild(tbody);
}
</script>
</script>
</head>
<body>
<table id="tb">
  <tr>
  <td>
   添加节点的地方
  </td>
  </tr>
</table>
<table>
  <tr>
  <td>
   <input type="button" value="添加节点" onclick="addEl()" />
  </td>
  <td>
   <input type="text" id="txt"/>
  </td>
  </tr>
</table>
</body>
</html>

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript操作DOM技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

学习JS中的DOM节点以及操作

DOM操作在JS中可以说是非常常见了吧,很多网页的小功能的实现,比如一些元素的增删操作等都可以用JS来实现。那么在DOM中我们需要知道些什么才能完成一些功能的实现呢?今天这篇文章就先简单的带大家入一下JS中DOM操作的门吧!!

一、DOM树的节点

1、 DOM节点分为三大类: 元素节点(标签节点)、属性节点和文本节点。

属性节点和文本节点都属于元素节点的子节点。 因此操作时,需先选中元素节点,再修改属性和文本。

【查看元素节点】

1、 使用getElement系列方法:

具体的HTML代码如下图:

学习JS中的DOM节点以及操作

//通过ID来查看元素属性
var li = document.getElementById("first"); 
//通过类名来查看元素属性
var lis1 = document.getElementsByClassName("cls");
//通过名字来查看元素属性
var lis2 = document.getElementsByName("name");
//通过标签名来查看元素属性
var lis3 = document.getElementsByTagName("li");

注意事项:

① ID不能重名,如果ID重复,只能取到第一个。

② 获取元素节点时,必须等到DOM树加载完成后才能获取。

两种处理方式:

a.将JS写在文档最后;

b.将代码写入window.onload函数中;

③ 通过getElements系列取到的为数组格式,操作时必须取到其中的每一个元素,才能进行操作,而不能直接对数组进行操作。

document.getElementsByTagName("li")[0].click = function(){}

④ 这一系列方法,也可以先选中一个DOM节点,在从选中的DOM节点中,选择需要的节点:

document.getElementById("div1").getElementsByTagName("li");

【通过querySelector系列方法】

① 传入一个选择器名称,返回第一个找到的元素。 通常用于查找ID:

var dq1 = document.querySelector("#id");

② 传入一个选择器名称,返回所有找到的元素,无论找到几个,都返回数组格式。这种方法比较全能,不管什么属性都可以准确地找到。

var dqs1 = document.querySelectorAll("#div1 li");

【查看\设置属性节点】

1、 查看属性节点:.getAttribute("属性名");

2、 设置属性节点:.setAttribute("属性名","属性值");

注意事项:.setAttribute() 在老版本IE中会存在兼容性问题,可以使用.符号代替。

【JS修改CSS的多种方式】

1、 使用setAttribute设置class和style。

document.getElementById("first").setAttribute("class","class1");
document.getElementById("first").setAttribute("style","color:red;");

2、使用.className添加一个class选择器。

document.getElementById("first").className = "class1";

3、 使用.style.样式 直接修改单个样式。 注意样式名必须使用驼峰命名法。

document.getElementById("first").style.fontSize = "18px";

4、 使用.style 或 .style.cssText 添加一串行级样式:

// IE不兼容
document.getElementById("first").style = "color:red;"; 
//所有浏览器兼容
document.getElementById("first").style.cssText = "color:red;";

【查看/设置文本节点】

1、.innerHTML: 取到或设置一个节点中的HTML代码。

2、.innerText: 取到或设置一个节点中的文本,不能设置HTML代码。

二、层次节点操作

1. .childNodes: 获取当前节点的所有子节点(包括元素节点和文本节点)。

.children: 获取当前节点的所有元素子节点(不包含文本节点)。

2. .parentNode: 获取当前节点的父节点。

3. .firstChild: 获取第一个子节点,包括回车等文本节点;

.firstElementChild: 获取第一个元素节点。 不含文本节点;

.lastChild: 获取最后一个子节点,包括回车等文本节点;

.lastElementChild: 获取最后一个子节点,不含文本节点;

4. .previousSibling: 获取当前节点的前一个兄弟节点,包括文本节点;

.previousElementSibling: 获取当前节点的前一个元素兄弟节点;

.nextSibling:获取当前节点的后一个兄弟节点,包括文本节点;

.nextElementSibling:获取当前节点的后一个元素兄弟节点;

5. .attributes: 获取当前节点的所有属性节点。 返回数组格式。

【创建并新增节点】

1. document.createElement("标签名"): 创建一个新节点,并将创建的新节点返回。

需要配合.setAttribute()为新节点设置属性。

2. 父节点.insertBefore(新节点,目标节点): 在父节点中,将新节点插入到目标节点之前。

父节点.appendChild(新节点): 在父节点的内部最后,插入一个新节点。

3. 源节点.cloneNode(true): 克隆一个节点。

传入true表示克隆源节点以及源节点的所有子节点;

传入false或不传,表示只克隆当前节点,而不克隆子节点。

【删除、替换节点】

1. 父节点.removeChild(子节点): 从父节点中,删除指定子节点。

2. 父节点.replaceChild(新节点,老节点): 从父节点中,用新节点替换老节点。

以上就是本次给大家分享的关于Javascript的全部知识点内容总结,大家还可以在下方相关文章里找到echarts中箱线图的分析与绘、 让JS验证密码不能为空的实、 JavaScript中的call、apply方法、 等javascript文章进一步学习,感谢大家的阅读和支持。

上一篇:JavaScript实现飘落星星特效的代码详解

下一篇:js上传文件功能的实例讲解

展开 +

收起 -

相关内容
JavaScript框架设计

JavaScript,框架设计

查看详情
JavaScript网页动画设计

JavaScript网页动画设计 由业界先进的动画库Velocity。js的作者所著,书中内容共分为8章,简明扼要地总结了在网页上使用动画的技术技巧,让读者掌握如何有效利用动画实现无与伦比的用户体验

查看详情
JavaScript ES6函数式编程入门经典

本书使用JavaScript ES6带你学习函数式编程。你将学习柯里化、偏函数、高阶函数以及Monad等概念。具有一定的参考价值,感兴趣的小伙伴们可以参考一下

查看详情
你不知道的JavaScript(中卷)

JavaScript这门语言简单易用,很容易上手,但其语言机制复杂微妙,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理解。

查看详情
JavaScript启示录

《JavaScript启示录》无关于JavaScript设计模式,也无关于JavaScript面向对象代码实现。《JavaScript启示录》意图通过考察原生JavaScript对象和不同环境对原生对象的支持和细微差别。

查看详情
PHP、MySQL与JavaScript学习手册

本书有借助面向对象的编程基础,深入学习PHP。研究MySQL,从数据库结构到复杂查询。掌握JavaScript语言,以及带有jQuery的增强功能。调用Ajax进行后台浏览器/服务器通信等,欢迎免费下载

查看详情
精通JavaScript

精通JavaScript(第2版) 是iQuery之父的经典之作,是深入学习JavaScript技术的绝佳教材,涵盖了可重用代码、文档对象模型、Ajax、Web生产工具、AngularJS等内容。作者讲解了JavaScript的发展现状、实用技

查看详情
完美图解物联网IoT实操:ESP8266 Arduino,Cordova物联网移动App,JavaScript微控制器编程

完美图解物联网技术系列》图书是当前物联网开发技术应用的集大成者。本书内容以Arduino和JavaScript为主线,开发物联网应用、手机App和操控微电脑

查看详情
JavaScript从入门到精通

本书是javascript高级程序的权威指南,从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用JavaScript语言进行程序开发应该掌握的各方面技术,是一本入门经典书籍

查看详情
学习笔记
网友NO.974968

JS实现访问DOM对象指定节点的方法示例

本文实例讲述了JS实现访问DOM对象指定节点的方法。分享给大家供大家参考,具体如下: 一 介绍 使用 getElementById() 方法来访问指定id的节点,并用 nodeName 属性、 nodeType 属性和 nodeValue 属性来显示出该节点名称、节点类型和节点值。 1、 nodeName 属性 该属性用来获取某一个节点的名称。 [sName=]obj.nodeName sName :字符串变量用来存储节点的名称。 2、 nodeType 属性 该属性用来获取某一个节点的类型。 [sType=]obj.nodeType sType :字符串变量,用来存储节点的类型,该类型值为数值型。该参数的类型如下表所示。 类 型 数 值 节 点 名 说 明 元素(element) 1 标记 任何HTML或XML的标记 属性(attribute) 2 属性 标记中的属性 文本(text) 3 #text 包含标记中的文本 注释(comment) 8 #comment HTML的注释 文档(document) 9 #document 文档对象 文档类型(documentType) 10 DOCTYPE DTD规范 3、……

网友NO.752078

JS实现DOM删除节点操作示例

本文实例讲述了JS实现DOM删除节点操作。分享给大家供大家参考,具体如下: 一 介绍 删除节点通过使用 removeChild() 方法来实现。 removeChild() 方法用来删除一个子节点。 obj. removeChild(oldChild) oldChild :表示需要删除的节点。 二 应用 删除节点,本示例将通过DOM对象的 removeChild() 方法,动态删除页面中所选中的文本。 三 代码 !DOCTYPE htmlhtmlheadtitlewww.jb51.net 删除节点/titlescript language="javascript"!--function delNode(){var deleteN=document.getElementById('di');if(deleteN.hasChildNodes()){ deleteN.removeChild(deleteN.lastChild);}}--/script/headbodyh1删除节点/h1div id="di"p第一行文本/pp第二行文本/pp第三行文本/p/divforminput type="button" value="删除" onclick="delNode();"//form/body/html 四 运行结果 更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript操作DOM技巧总结》、《JavaScript错误与调试技巧总结》、……

网友NO.856996

JS实现的DOM插入节点操作示例

本文实例讲述了JS实现的DOM插入节点操作。分享给大家供大家参考,具体如下: 一 介绍 插入节点通过使用insertBefore()方法来实现。 insertBefore() 方法将在另一个子节点前插入新的子节点。 obj.insertBefore(new,ref) new :表示新的子节点。 ref :指定一个节点,在这个节点前插入新的节点。 二 应用 插入节点,本示例在页面的文本框中输入需要插入的文本,然后通过单击“前插入”按钮将文本插入到页面中。 三 完整示例代码: !DOCTYPE htmlhtmlheadtitlewww.jb51.net 插入节点/titlescript language="javascript" !-- function crNode(str) { var newP=document.createElement("p"); var newTxt=document.createTextNode(str); newP.appendChild(newTxt); return newP; } function insetNode(nodeId,str) { var node=document.getElementById(nodeId); var newNode=crNode(str); if(node.parentNode) //判断是否拥有父节点 node.parentNode.insertBefore(newNode,node); } --/script/head……

网友NO.709341

JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例

本文实例讲述了JS实现DOM节点插入操作之子节点与兄弟节点插入操作。分享给大家供大家参考,具体如下: !doctype htmlhtmlheadmeta charset="utf-8"titlewww.jb51.net JS节点插入/title script function showinsert(){ //添加子节点 var str=document.getElementById("mydiv"); var zif="段落五"; var obj=document.createElement("p"); //添加哪类节点 var objNode=document.createTextNode(zif); //创建文字节点 str.appendChild(obj); obj.appendChild(objNode); } function showesideinsert(){ //添加兄弟节点 var str=document.getElementById("mydiv"); var zi="添加段落"; var strBrother=str.children[1]; var strNode=document.createElement("p"); var strTextNode=document.createTextNode(zi); str.insertBefore(strNode,strBrother); strNode.appendChild(strTextNode); } /script/headbody div id="mydiv" p onClick="showinsert()"段落一 p onClick="showesideinsert()"段落二 p段落三 p段落四 /div/body/html 使用 在线HTML/CSS/JavaScript代码运行工具……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757