java基础67 JavaScript通过关系找节点、添加附件(网页知识)
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通过关系找节点、添加附件(网页知识)的更多相关文章
- java基础59 JavaScript运算符与控制流程语句(网页知识)
1.JavaScript运算符 1.1.加减乘除法 加法:+(加法,连接符,正数) true是1,false是0 减法:- 乘法:* 除法:/ 1.2.比较运算符 ...
- Java基础83 JSP标签及jsp自定义标签(网页知识)
1.JSP标签 替代jsp脚本,用于jsp中执行java代码1.1.内置标签: <jsp:forward></jsp:forward> 相当于:request.getReu ...
- java基础73 dom4j修改xml里面的内容(网页知识)
1.DOM4J对XML文件进行增删改操作 实现代码 package com.shore.code; import java.io.File; import java.io.FileOutputStre ...
- java基础58 JavaScript的几种格式和变量的声明方式(网页知识)
1.JavaScript的几种格式 1.1.JavaScript的特点 1.跨平台性 2.安全性.(javaScript代码不能直接访问电脑硬盘上的信息) 1.2.Java与javaScript ...
- java基础64 JavaScript中的Arrays数组对象和prototype原型属性(网页知识)
1.Arrays数组对象的创建方式 方式一: var 变量名=new Array(); //创建一个长度为0的数组. 方式二: var 变量名=new Array(长度); //创建一个指定长度的数组 ...
- java基础68 JavaScript城市联动框(网页知识)
1.城市联动框 <!doctype html> <html> <head> <meta charset="utf-8"> <t ...
- java基础63 JavaScript中的Number、Math、String、Date对象(网页知识)
本文知识点(目录): 1.Number对象 2.Math对象 3.String对象 4.Date对象 (日历例子) 1.Number对象 1.1.Number对象的创建方式 方式1: ...
- java基础69 JavaScript产生伪验证码(网页知识)
1.伪验证码 <!doctype html> //软件版本:DW2018版 <html> <head> <meta charset="utf-8&q ...
- java基础66 JavaScript中的事件、localtion对象、screen对象(网页知识)
1.JavaScript中的事件注册 1.1.事件的注册方式 方式1:直接在html元素上注册 <body onLoad="ready()"></body > ...
随机推荐
- 【hdu4010】 Query on The Trees
http://acm.hdu.edu.cn/showproblem.php?pid=4010 (题目链接) 题意 link cut tree板子 Solution link cut tree 细节 注 ...
- 在Struts2的Action中获得request response session几种方法
转载自~ 在Struts2中,从Action中取得request,session的对象进行应用是开发中的必需步骤,那么如何从Action中取得这些对象呢?Struts2为我们提供了四种方式.分别为se ...
- mongodb 使用 robo3T 等工具添加用户之后还是 auth failed 的问题
命令行输入 mongo use 对应的 db(需要授权的数据库),如 use admin 使用命令创建一个数据库,并赋予权限: db.createUser( { user: "xxx&quo ...
- Python高手之路【七】python基础之模块
本节大纲 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparse ...
- IOS的__bridge
使用 __bridge 关键字来实现id类型与void*类型的相互转换.看下面的例子. id obj = [[NSObject alloc] init]; void *p = (__bridge vo ...
- go build 不同系统下的可执行文件
Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能. 1.Mac下编译Linux, Windows平台的64位可执行程序: 1 2 $ CGO_ENABLED=0 GOOS=linu ...
- bzoj千题计划147:bzoj1207: [HNOI2004]打鼹鼠
http://www.lydsy.com/JudgeOnline/problem.php?id=1207 dp[i] 表示打的最后一只鼹鼠是第i只,最多能打多少只鼹鼠 输出max(dp[i]) 错解: ...
- Java并发编程原理与实战十一:锁重入&自旋锁&死锁
一.锁重入 package com.roocon.thread.t6; public class Demo { /* 当第一个线程A拿到当前实例锁后,进入a方法,那么,线程A还能拿到被当前实例所加锁的 ...
- 通过xshell/securecrt连接linux上传/下载文件
通过ssh等客户端连接远程linux总会有上传下载的需求,这里分别用Ubuntu和centos展示安装lrzsz软件的命令,使用命令是一致的,这里简单写 1.安装: centos:(注:参数-y中的意 ...
- 第一回 java~简介
Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式 ...