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. 20135239 益西拉姆 linux内核分析 进程的切换和系统的一般执行过程

    week 8 进程的切换和系统的一般执行过程 [ 20135239 原文请转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course ...

  2. 遇到问题---java---安装新版本jdk后Failed reading value of registry key

    情况 情况是原本安装有jdk1.7,能正常运行,现在要升级到1.8. 直接在oracle的网站下载1.8安装后修改配置为1.8后: 能用javac编译成功,但java命令运行时报错: Failed r ...

  3. Java之Stream流

    Stream流的初步学习 初次学习Stream流的学习笔记,学习之前先了解一下函数式接口 概述 API是一个程序向使用者提供的一些方法,通过这些方法就能实现某些功能.所以对于流API来 说,重点是怎么 ...

  4. CH暑假欢乐赛 SRM 07 天才麻将少女KPM(DP+treap)

    首先LIS有个$O(n^2)$的DP方法 $f(i,j)$表示前i个数,最后一个数<=j的LIS 如果$a_i!=0$则有 如果$a_i=0$则有 注意因为$f(i-1,j)\leq f(i-1 ...

  5. bzoj 1814: Ural 1519 Formula 1 插头dp经典题

    用的括号序列,听说比较快. 然并不会预处理,只会每回暴力找匹配的括号. #include<iostream> #include<cstdio> #include<cstr ...

  6. logger.debug的用处

    原文:https://www.cnblogs.com/xiangkejin/p/6426761.html logger.debug的用处 简单的说,就是配合log的等级过滤输出 根据你log4j的配置 ...

  7. 实验一:使用ADO.NET方式读数据

    第一步:创建Asp.net应用程序 在VS中,点击文件->新建->项目,按如图方式选择并输入: 第二步:新建产品浏览网页窗体Listing.aspx: 在项目SportsStoreEx上点 ...

  8. python【文件操作:读写文件】

    文件读写模式

  9. Selenium geckodriver异常

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  10. python---方法解析顺序MRO(Method Resolution Order)<以及解决类中super方法>

    MRO了解: 对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于基类,所以在方法调用时就需要对当前类和基类进行搜索以确定方法所在的位置.而搜索的顺序就是所谓的「方法解析顺序」(M ...