1、通过关系找节点(父子关系,兄弟关系)

1.1、常用方法

parentNode:获取当前元素的父节点.
    childNodes:获取当前元素的所有下一级子元素
    firstChild:获取当前节点的第一个子节点
    lastChild:获取当前节点的最后一个子节点
    nextSibling:获取当前节点的下一个节点(兄弟节点)
    previousSibling:获取当前节点的上一个节点.

1.2、实例

 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>通过关系找节点</title>
</head> <body>
<input type="text" id="username"/><a href="#">卖火柴的小女孩</a>
</body>
<script type="text/javascript">
var bodyNode=document.getElementsByTagName("body")[0];
var parentNode=bodyNode.parentNode;
alert("父节点的名称"+parentNode.nodeName);//父节点:HTML var children=bodyNode.childNodes;
alert(children.length);//共8个子节点
for(var i=0;i<children.length;i++){
alert("节点的名字:"+children[i].nodeName);
} var inputNode=document.getElementById("username");
alert("下一个兄弟节点:"+inputNode.nextSibling.nodeName);//返回值:A
alert("上一个兄弟节点:"+inputNode.previousSibling.nodeName);//返回值:#text 表示的是:空格/文本内容(字符串) </script>
</html>

效果图

2、添加附件

2.1、创建子节点插入节点,设置节点属性的一些方法

document.createElement("标签名"):创建新元素节点
    setAttribute("属性名","属性值"):设置指定标签属性的值。
    appendChild():给对象追加一个子元素。

2.2、实例

例1:

 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>添加附件</title>
</head>
<script type="text/javascript">
var num=1;
function add(){
var inputNode=document.createElement("input");
inputNode.setAttribute("type","button");
inputNode.setAttribute("value","按钮"+num);
num++;
//因为上面的内容要添加到body的input标签后面,所以这里要获取body标签的位置
var bodyNode=document.getElementsByTagName("body")[0];
bodyNode.appendChild(inputNode);//appendChild 添加子节点
}
</script>
<body>
<input type="button" onClick="add()" value="添加"/>
</body>
</html>

效果图

 例2:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JavaScript添加和删除附件</title>
</head>
<script type="text/javascript">
function addFile(){
//先创建一个tr对象
var trNode=document.createElement("tr");
//创建td对象
var tdNode1=document.createElement("td");
var tdNode2=document.createElement("td");
//
tdNode1.innerHTML="<input type='file'/>";
tdNode2.innerHTML="<a href='#' onClick='delFile(this)'>删除文件</a>";
//把td的节点添加到tr节点上
trNode.appendChild(tdNode1);
trNode.appendChild(tdNode2);
var tbodyNode=document.getElementsByTagName("tbody")[0];
var lastRow=document.getElementById("lastRow");
tbodyNode.insertBefore(trNode,lastRow);
} //删除附件
function delFile(aNode){
var trNode=aNode.parentNode.parentNode;
var tbodyNode=document.getElementsByTagName("tbody")[0];
tbodyNode.removeChild(trNode);
}
</script>
<body>
<table>
<tr>
<td><input type="file"/></td><td><a href="#" onClick="delFile(this)">删除文件</a></td> <!-- delFile(this):里面的this表示当前选中的选项 -->
</tr>
</br>
<tr id="lastRow">
<td colspan="2"><input type="button" onClick="addFile()" value="添加附件"/></td>
</tr>
</table>
</body>
</html>

结果图

原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/9528306.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

java基础67 JavaScript通过关系找节点、添加附件(网页知识)的更多相关文章

  1. java基础59 JavaScript运算符与控制流程语句(网页知识)

    1.JavaScript运算符 1.1.加减乘除法 加法:+(加法,连接符,正数)          true是1,false是0    减法:-    乘法:*    除法:/ 1.2.比较运算符 ...

  2. Java基础83 JSP标签及jsp自定义标签(网页知识)

    1.JSP标签 替代jsp脚本,用于jsp中执行java代码1.1.内置标签:  <jsp:forward></jsp:forward>  相当于:request.getReu ...

  3. java基础73 dom4j修改xml里面的内容(网页知识)

    1.DOM4J对XML文件进行增删改操作 实现代码 package com.shore.code; import java.io.File; import java.io.FileOutputStre ...

  4. java基础58 JavaScript的几种格式和变量的声明方式(网页知识)

    1.JavaScript的几种格式 1.1.JavaScript的特点 1.跨平台性    2.安全性.(javaScript代码不能直接访问电脑硬盘上的信息) 1.2.Java与javaScript ...

  5. java基础64 JavaScript中的Arrays数组对象和prototype原型属性(网页知识)

    1.Arrays数组对象的创建方式 方式一: var 变量名=new Array(); //创建一个长度为0的数组. 方式二: var 变量名=new Array(长度); //创建一个指定长度的数组 ...

  6. java基础68 JavaScript城市联动框(网页知识)

    1.城市联动框 <!doctype html> <html> <head> <meta charset="utf-8"> <t ...

  7. java基础63 JavaScript中的Number、Math、String、Date对象(网页知识)

    本文知识点(目录): 1.Number对象    2.Math对象    3.String对象    4.Date对象 (日历例子) 1.Number对象 1.1.Number对象的创建方式 方式1: ...

  8. java基础69 JavaScript产生伪验证码(网页知识)

    1.伪验证码 <!doctype html> //软件版本:DW2018版 <html> <head> <meta charset="utf-8&q ...

  9. java基础66 JavaScript中的事件、localtion对象、screen对象(网页知识)

    1.JavaScript中的事件注册 1.1.事件的注册方式 方式1:直接在html元素上注册 <body onLoad="ready()"></body > ...

随机推荐

  1. 解题:CF983B pyramid

    题面 题目都告诉我们是“金字塔”了,不妨分析分析$f$的性质 $f(a_1,a_2)=f(a_1$ $xor$ $a_2)=a1$ $xor$ $a_2$ $f(a_1,a_2,a_3)=f(a_1$ ...

  2. 解题:POI 2012 Well

    题面 比较明显地能看出二分来,但是检查函数很难写.对于二分出的一个$mid$,我们要让它满足在$m$次操作内令序列中存在一个为零的位置,同时使得任意相邻的两项之差不超过$mid$ 第二项的检查比较好做 ...

  3. mysql source导入多个sql文件

    mysql>use dbtest; mysql>set names utf8; mysql>source D:/mysql/all.sql; 通过source命令导入多个文件,可以新 ...

  4. E. Turn Off The TV Educational Codeforces Round 29

    http://codeforces.com/contest/863/problem/E 注意细节 #include <cstdio> #include <cstdlib> #i ...

  5. H5页面中唤起native app

    现在各类app,分享出去的H5页面中,一般都会带着一个立即打开的按钮,如果本地安装了app,那么就直接唤起本地的app,如果没有安装,则跳转到下载.这是一个很正常的推广和导流量的策略,最近产品经理就提 ...

  6. poj 2125 Destroying The Graph (最小点权覆盖)

    Destroying The Graph http://poj.org/problem?id=2125 Time Limit: 2000MS   Memory Limit: 65536K       ...

  7. Java并发编程原理与实战三十二:ForkJoin框架详解

    1.Fork/Join框架有什么用呢? ------->Fork使用来切分任务,Join是用来汇总结果.举个简单的栗子:任务是1+2+3+...+100这个任务(当然这个任务的结果有好的算法去做 ...

  8. [整理]ASP.NET vNext学习资源

    http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx http://blogs.msdn.com/b/dotnet/archive/201 ...

  9. jQuery插件开发中$.extend和$.fn.extend辨析

    jQuery插件开发分为两种:   1 类级别 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery. ...

  10. 20155302 2016-2017-2 《Java程序设计》第七周学习总结

    20155302 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Lambda表达式的优点:更加紧凑的代码.修改方法的能力.更好地支持多核处理 "L ...