一、JavaScript 和 html 代码的结合方式

1. 第一种方式

只需要在 head 标签中,或者在 body 标签中, 使用 script 标签 来书写 JavaScript 代码

<!DOCTYPE html>
<html lang="en">
<head> <meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
// alert 是 JavaScript 语 言 提 供 的 一 个 警 告 框 函 数 。
// 它 可 以 接 收 任 意 类 型 的 参 数 , 这 个 参 数 就 是 警 告 框 的 提 示 信 息 alert("hello javaScript!");
</script>
</head>
<body>
</body>
</html>

2. 第二种方式

使用 script 标签引入 单独的 JavaScript 代码文件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!- 现在需要使用 script 引入外部的 js 文件来执行 src 属性专门用来引入 js 文件路径(可以是相对路径,也可以是绝对路径) script 标签可以用来定义 js 代码,也可以用来引入 js 文件 但是,两个功能二选一使用。不能同时使用两个功能 --> <script type="text/javascript" src="1.js">
</script>
<script type="text/javascript"> alert("国哥现在可以帅了");
</script> </head> <body> </body>
</html>

二、变量

什么是变量?变量是可以存放某些值的内存的命名。

JavaScript 的变量类型:

  • 数值类型: number
  • 字符串类型: string
  • 对象类型: object
  • 布尔类型: boolean
  • 函数类型: function

JavaScript 里特殊的值: undefined 未定义,所有 js 变量未赋于初始值的时候,默认值都是 undefined. null 空值 NaN 全称是:NotaNumber。非数字。非数值

JS 中的定义变量格式: var 变量名; var 变量名 = 值;

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
var i;
// alert(i);
// undefined i = 12;
// typeof() 是 JavaScript 语 言 提 供 的 一 个 函 数 。
// alert( typeof(i) ); // number
i = "abc";
// 它 可 以 取 变 量 的 数 据 类 型 返 回 // alert( typeof(i) );
// String
var a = 12; var b = "abc";
alert( a * b ); // NaN是 非 数 字 , 非 数 值 。 </script>
</head>
<body>
</body>
</html>

三、常见运算

1. 关系(比较)运算

  • 等于: == 等于是简单的做字面值的比较
  • 全等于: === 除了做字面值的比较之外,还会比较两个变量的数据类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
var a = "12";
var b = 12;
alert( a == b ); // true
alert( a === b ); // false
</script> </head> <body>
</body> </html>

2. 逻辑运算

  • 且运算: &&、
  • 或运算:|| 、
  • 取反运算: !

在 JavaScript 语言中,所有的变量,都可以做为一个 boolean 类型的变量去使用。

0 、null、 undefined、””(空串) 都认为是 false;

注意:

  • && 且运算。 有两种情况: 第一种:当表达式全为真的时候。返回最后一个表达式的值。 第二种:当表达式中,有一个为假的时候。返回第一个为假的表达式的值
  • || 或运算 第一种情况:当表达式全为假时,返回最后一个表达式的值 第二种情况:只要有一个表达式为真。就会把回第一个为真的表达式的值
  • 并且 && 与运算 和 ||或运算 有短路。 短路就是说,当这个&&或||运算有结果了之后 。后面的表达式不再执行 */
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
var a = 0;
if (a) {
alert(" 零 为 真 ");
} else {
alert(" 零 为 假 ");
}
var b = null;
if (b) {
alert("null为 真 ");
} else {
alert("null为 假 ");
}
var c = undefined;
if (c) {
alert("undefined为 真 ");
} else {
alert("undefined为 假 ");
}
var d = "";
if (d) {
alert(" 空 串 为 真 ");
} else {
alert(" 空 串 为 假 ");
} var a = "abc";
var b = true;
var d = false;
var c = null;
alert( a && b );//true
alert( b && a );//true
alert( a && d ); // false
alert( a && c ); // null alert( d || c ); // null
alert( c|| d ); //false
alert( a || c ); //abc
alert( b || c ); //true
</script>
</head>
<body>
</body>
</html>

四、数组

1. 数组定义方式

  • var 数组名 =[]; //空数组
  • var 数组名 =[1,’abc’,true]; // 定义数组同时赋值元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
var arr = [true,1]; //定 义 数 组
// alert( arr.length ); // 2
arr[0] = 12;
// alert( arr[0] );//12 // javaScript语 言 中 的 数 组 , 只 要 我 们 通 过 数 组 下 标 赋 值 , 那 么 最 大 的 下 标 值 , 就 会 自 动 的 给 数 组 做 扩 容 操 作 。
arr[2] = "abc";
alert(arr.length); //3
// alert(arr[1]);// undefined
// 数 组 的 遍 历
for (var i = 0; i < arr.length; i++){
alert(arr[i]);
}
</script> </head>
<body>
</body> </html>

五、函数

函数的二种定义方式

1. 第一种定义方式

可以使用 function 关键字来定义函数

function 函数名(形参列表){

函数体

}

在 JavaScript 语言中,如何定义带有返回值的函数? 只需要在函数体内直接使用 return 语句返回值即可!

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
// 定 义 一 个 无 参 函 数
function fun(){
alert("无参函数 fun()被调用了");
}
// 函 数 调 用 === 才 会 执 行
fun(); function fun2(a ,b) {
alert("有参函数 fun2()被调用了 a=>" + a + ",b=>"+b);
}
fun2(12,"abc"); //定 义 带 有 返 回 值 的 函 数
function sum(num1,num2) {
var result = num1 + num2;
return result;
}
alert( sum(100,50) );
</script> </head> <body>
</body> </html>

2. 第二种定义方式

var 函数名 =function(形参列表){

函数体

}

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
var fun = function () {
alert("无参函数");
}
fun(); var fun2 = function (a,b) {
alert("有参函数 a=" + a + ",b=" + b);
}
fun2(1,2); var fun3 = function (num1,num2) {
return num1 + num2;
}
alert( fun3(100,200) );
</script>
</head>
<body>
</body>
</html>

注意:在 Java 中函数允许重载。但是在 JS 中函数的重载会直接覆盖掉上一次的定义

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
function fun() {
alert("无参函数 fun()");
}
function fun(a,b) {
alert("有参函数 fun(a,b)");
} fun();
</script>
</head>
<body>
</body>
</html>

3. 函数的 arguments 隐形参数

只在 function 函数内,就是在 function 函数中不需要定义,但却可以直接用来获取所有参数的变量。我们管它叫隐形参数

隐形参数特别像 java 基础的可变长参数一样。

public void fun(Object...args); ,可变长参数其他是一个数组

那么 js 中的隐形参数也跟 java 的可变长参数一样,操作类似数组

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
function fun(a) {
alert( arguments.length );// 可 看 参 数 个 数
alert( arguments[0] );
alert( arguments[1] );
alert( arguments[2] );
alert("a = " + a); for (var i = 0; i < arguments.length; i++){
alert( arguments[i] );
}
alert("无参函数 fun()");
}
fun(1,"ad",true);
//需 求 : 要 求 编 写 一 个 函 数 。 用 于 计 算 所 有 参 数 相 加 的 和 并 返 回
function sum(num1,num2) {
var result = 0;
for (var i = 0; i < arguments.length; i++) {
if (typeof(arguments[i]) == "number") {
result += arguments[i]; }
}
return result;
}
alert( sum(1,2,3,4,"abc",5,6,7,8,9) );
</script>
</head>
<body>
</body>
</html>

六、JS 中的自定义对象

1. Object 形式的自定义对象

对象的定义:

​ var 变量名 =newObject(); // 对象实例(空对象)

​ 变量名.属性名 = 值; // 定义一个属性

变量名.函数名 =function(){} // 定义一个函数

对象的访问:

​ 变量名.属性 / 函数名();

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript"> var obj = new Object();
obj.name = "马达";
obj.age = 18;
obj.fun = function () {
alert("姓名:" + this.name + " , 年龄:" + this.age);
} // 对象的访问
// alert(obj.name);
obj.fun();
</script>
</head>
<body>
</body>
</html>

2. {}花括号形式的自定义对象

对象的定义:

​ var 变量名 ={ // 空对象

​ 属性名:值, // 定义一个属性

​ 属性名:值, // 定义一个属性

​ 函数名:function(){} // 定义一个函数

};

对象的访问:

​ 变量名.属性 / 函数名();

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
var obj = {
name: "马达",
age: 18,
fun: function () {
alert("姓名:" + this.name + " , 年龄:" + this.age);
}
}; // alert(obj.name);
obj.fun();
</script>
</head>
<body>
</body>
</html>

七、JS中的事件

什么是事件?事件是电脑输入设备与页面进行交互的响应,称之为事件

1. 常用的事件

  • onload 加载完成事件: 页面加载完成之后,常用于做页面 js 代码初始化操作
  • onclick 单击事件: 常用于按钮的点击响应操作
  • onblur失去焦点事件: 常用用于输入框失去焦点后验证其输入内容是否合法
  • onchange内容发生改变事件: 常用于下拉列表和输入框内容发生改变后操作
  • onsubmit 表单提交事件: 常用于表单提交前,验证所有表单项是否合法

事件的注册又分为静态注册和动态注册两种

什么是事件的注册(绑定)?

其实就是告诉浏览器,当事件响应后要执行哪些操作代码,叫事件注册或事件绑定。

2. 静态注册事件

通过 html 标签的事件属性直接赋于事件响应后的代码,这种方式我们叫静态注册

3. 动态注册事件

是指先通过 js 代码得到标签的 dom 对象,然后再通过 dom对象.事件名 =function(){} 这种形式赋于事件

响应后的代码,叫动态注册

动态注册基本步骤:

  • 获取标签对象
  • 标签对象.事件名 =fucntion(){}

4. onload 加载完成事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
// function onLoadFun() {
// alert("静态注册onload事件");
// } // 这个是动态注册,固定的写法
window.onload = function () {
alert("动态注册onload事件");
} </script>
</head> <!--静态注册onload事件,这个事件是在浏览器解析完页面之后自动触发的事件,里面自定义的函数
<body onload="onLoadFun()"> --> </body>
</html>

5. onclick 单击事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
// function onclickFun() {
// alert("静态注册onclick事件");
// } // 动态注册
window.onload = function () {
// 1. 获取标签对象
// document是JS语言提供的一个对象
// 通过属性的id来获取标签对象
var b = document.getElementById("b01");
// alert(b); // 2. 通过标签对象.事件名 = function (){}
b.onclick = function () {
alert("动态注册onclick事件");
}
} </script>
</head>
<body> <!-- 静态注册onclick-->
<button onclick="onclickFun();">按钮1</button>
<button id="b01">按钮2</button>
</body>
</html>

6. onblur失去焦点事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
// 静 态 注 册 失 去 焦 点 事 件
function onblurFun() {
// console 是 控 制 台 对 象 , 是 由 JavaScript语 言 提 供 , 专 门 用 来 向 浏 览 器 的 控 制 器 打 印 输 出 , 用 于 测 试 使 用
// log()
console.log("静态注册失去焦点事件");
} // 动态注册
window.onload = function () {
//1 获 取 标 签 对 象
var passwordObj = document.getElementById("password");
// alert(passwordObj);
// 2 通 过 标 签 对 象 . 事 件 名 = function(){};
passwordObj.onblur = function () {
console.log("动态注册失去焦点事件");
}
}
</script>
</head>
<body>
用户名:<input type="text" onblur="onblurFun();"><br/>
密码:<input id="password" type="text"><br/>
</body>
</html>

7. onchange内容发生改变事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
function onchangeFun() {
alert("电影改变");
} window.onload = function () {
var sObj = document.getElementById("s01");
sObj.onchange = function () {
alert("书籍已经改变");
}
} </script>
</head>
<body> <!--静态注册事件-->
请选择你喜欢看的电影
<select onchange="onchangeFun();">
<option>--电影--</option>
<option>盗墓笔记</option>
<option>黑客帝国</option>
<option>千与千寻</option>
</select> <br>
请选择你喜欢看的书籍
<select id="s01">
<option>--书籍--</option>
<option>平凡的世界</option>
<option>小王子</option>
<option>解忧杂货店</option>
</select> </body>
</html>

8. onsubmit 表单提交事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
// 静态注册表单提交事务
function onsubmitFun() {
alert("提交不合法"); return false;
} // 动态注册表单提交事务
window.onload = function () {
var formObj = document.getElementById("form01");
formObj.onsubmit = function () {
alert("动态注册提交不合法");
return false;
}
} </script>
</head>
<body>
<!--return false 可 以 阻 止 表 单 提 交-->
<form action="http://localhost:8080" method="get" onsubmit="return onsubmitFun();">
<input type="submit" value="静态注册"/>
</form> <form action="http://localhost:8080" id="form01">
<input type="submit" value="动态注册"/>
</form> </body>
</html>

八、DOM模型

DOM 全称是 DocumentObjectModel 文档对象模型

就是把文档中的标签,属性,文本,转换成为对象来管理。 那么 它们是如何实现把标签,属性,文本转换成为对象来管理呢

1. Document 对象

Document 对象的理解:

  • Document 它管理了所有的 HTML 文档内容
  • document 它是一种树结构的文档,有层级关系
  • 它让我们把所有的标签 都 对象化
  • 我们可以通过 document 访问所有的标签对象

2. Document 对象中的方法介绍

  • document.getElementById(elementId) 通过标签的 id 属性查找标签 dom 对象,elementId 是标签的 id 属性值
  • document.getElementsByName(elementName) 通过标签的 name 属性查找标签 dom 对象,elementName 标签的 name 属性值
  • document.getElementsByTagName(tagname) 通过标签名查找标签 dom 对象。tagname 是标签名
  • document.createElement( tagName) 方法,通过给定的标签名,创建一个标签对象。tagName 是要创建的标签名

注意:

document 对象的三个查询方法,如果有 id 属性,

优先使用 getElementById 方法来进行查询 如果没有 id 属性,则优先使用 getElementsByName 方法来进行查询 如果 id 属性和 name 属性都没有最后再按标签名查 getElementsByTagName

以上三个方法,一定要在页面加载完成之后执行,才能查询到标签对象

3. getElementById 方法

需 求 : 当用户点击了校验按 钮 , 要 获 取 输 出 框 中 的 内 容 。 然 后 验 证 其 是 否 合 法 。

验 证 的 规 则 是 : 必 须 由 字 母、数 字、下 划 线 组 成 。 并 且 长 度 是 5 到 12 位

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript"> function onClick() {
// 1 当我们要 操 作 一 个 标 签 的 时 候 , 一 定 要 先 获 取 这 个 标 签 对 象 。
var usernameObj = document.getElementById("username");
// [object HTMLInputElement] 就是dom对象
var usernameText = usernameObj.value; //如 何 验 证 字 符 串 , 符 合 某 个 规 则 , 需 要 使 用 正 则 表 达 式 技 术
var patt = /^\w{5,12}$/;
/*
test() 方 法 用 于 测 试 某 个 字 符 串 , 是 不 是 匹 配 我 的 规 则 ,
匹配就返回true,否则返回false
*/ var usernameSpanObj = document.getElementById("usernameSpan");
// innerHTML表 示 起 始 标 签 和 结 束 标 签 中 的 内 容
// innerHTML 这个属性可读,可写
usernameSpanObj.innerHTML = "你好!"; if (patt.test(usernameText)) {
alert("用户名合法");
usernameSpanObj.innerHTML = "用户名合法!";
}else{
alert("用户名不合法");
usernameSpanObj.innerHTML = "用户名不合法!";
}
}
</script>
</head>
<body>
用户名:<input type="text" id="username" value="md">
<span id="usernameSpan" style="color: red;"> </span> <button onclick="onClick()">校验</button>
</body>
</html>

4. getElementsByName 方法

让 所 有 复 选 框 都 选 中

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> <script type="text/javascript"> function checkAll() {
// document.getElementsByName("hobby"),是根据指定的name来查询返回多个标签对象集合
// 这个集合的操作和数组一样,集合中每个元素都是dom对象
// 这个集合中元素的顺序是按照html页面的上下顺序
var hobbies = document.getElementsByName("hobby");
// checked表示复选框的选中状态,选中是true
for (var i = 0; i < hobbies.length; i++){
hobbies[i].checked = true;
}
} // 全不选
function checkNo() {
var hobbies = document.getElementsByName("hobby");
for (var i = 0; i < hobbies.length; i++){
hobbies[i].checked = false;
}
} // 反选
// 这里用的取反操作
function checkReverse() {
var hobbies = document.getElementsByName("hobby");
for (var i = 0; i < hobbies.length; i++){
hobbies[i].checked = !hobbies[i].checked;
}
}
</script>
</head>
<body> 兴趣爱好:
<input type="checkbox" name="hobby" value="c" checked="checked"> C
<input type="checkbox" name="hobby" value="java"> Java
<input type="checkbox" name="hobby" value="python"> Python <br> <button onclick="checkAll()">全选</button>
<button onclick="checkNo()">全部选</button>
<button onclick="checkReverse()">反选</button> </body>
</html>

5. getElementsByTagName 方法

也是全选操作

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> <script type="text/javascript"> function checkAll() {
// document.getElementsByTagName("input"),
// 是根据指定标签名来查询返回多个标签对象集合
// 这个集合的操作和数组一样,集合中每个元素都是dom对象
// 这个集合中元素的顺序是按照html页面的上下顺序
var hobbies = document.getElementsByTagName("input"); for (var i = 0; i < hobbies.length; i++){
hobbies[i].checked = true;
}
} </script>
</head>
<body> 兴趣爱好:
<input type="checkbox" name="hobby" value="c" checked="checked"> C
<input type="checkbox" name="hobby" value="java"> Java
<input type="checkbox" name="hobby" value="python"> Python <br> <button onclick="checkAll()">全选</button> </body>
</html>

6. createElement 方法

使用js代码来创建html标签

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript"> window.onload = function () {
// 在内存中有<div> </div>
var divObj = document.createElement("div"); // 有一个文本节点对象 你好,山丘
var textNodeObj = document.createTextNode("你好,山丘"); // <div>你好,山丘 </div>
divObj.appendChild(textNodeObj); // 添加子元素,在body里
document.body.appendChild(divObj);
} </script>
</head>
<body> </body>
</html>

7. 节点常用的属性和方法

方法:

  • 通过具体的元素节点调用 getElementsByTagName() 方法,获取当前节点的指定标签名孩子节点
  • appendChild(ChildNode) 方法,可以添加一个子节点,ChildNode 是要添加的孩子节点

属性:

  • childNodes 属性,获取当前节点的所有子节点
  • firstChild 属性,获取当前节点的第一个子节点 ,会匹配换行和空格信息 ,使用firstElementChild 则不会匹配换行和空格信息,其他的类似
  • lastChild 属性,获取当前节点的最后一个子节点
  • parentNode 属性,获取当前节点的父节点
  • nextSibling 属性,获取当前节点的下一个节点
  • previousSibling 属性,获取当前节点的上一个节点,previousElementSibling这个不包括换行和空格
  • className 用于获取或设置标签的 class 属性值
  • innerHTML 属性,表示获取/设置起始标签和结束标签中的内容
  • innerText 属性,表示获取/设置起始标签和结束标签中的文本

8. DOM练习

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> <script type="text/javascript"> window.onload = function () {
// 1. 查找#bj节点
document.getElementById("b01").onclick = function () {
var bjObj = document.getElementById("bj");
alert(bjObj.innerHTML);
}; // 2. 查找所有 li 节点
var but02Ele = document.getElementById("b02");
but02Ele.onclick = function () {
var lis = document.getElementsByTagName("li");
alert(lis.length);
};
// 3. 查找 name=gender 的所有节点
var but03Ele = document.getElementById("b03");
but03Ele.onclick = function () {
var genders = document.getElementsByName("gender");
alert(genders.length);
}; // 4. 查找#city 下所有 li 节点
var but04Ele = document.getElementById("b04");
but04Ele.onclick = function () {
var lis = document.getElementById("city").getElementsByTagName("li");
alert(lis.length);
}; // 5. 返回#city 的所有子节点
var but05Ele = document.getElementById("b05");
but05Ele.onclick = function () {
var obj = document.getElementById("city").childNodes;
console.log(obj.length);
for (var i = 0; i < obj.length; i++){
console.log(obj[i]);
}
}; // 6. 返回#phone 的第一个子节点
var but06Ele = document.getElementById("b06");
but06Ele.onclick = function () {
var objphone = document.getElementById("phone").firstElementChild;
alert(objphone.innerHTML); }; // 7. 返回#bj 的父节点
var but07Ele = document.getElementById("b07");
but07Ele.onclick = function () {
var objbj = document.getElementById("bj").parentNode;
alert(objbj.innerHTML);
}; // 8. 返回#ML 的前一个兄弟节点
var but08Ele = document.getElementById("b08");
but08Ele.onclick = function () {
alert(document.getElementById("ML").previousElementSibling.innerHTML);
}; // 9. 返回#username 的 value 属性值
var but09Ele = document.getElementById("b09");
but09Ele.onclick = function () {
alert(document.getElementById("username").value);
}; // 10. 设置#username 的 value 属性值
var but10Ele = document.getElementById("b10");
but10Ele.onclick = function () {
document.getElementById("username").value = "山丘";
}; // 11. 返回#city 的文本值
var but11Ele = document.getElementById("b11");
but11Ele.onclick = function () {
alert(document.getElementById("city").innerText);
};
}; </script>
</head>
<body>
<div id="total">
<div class="inner">
<p>
你喜欢那个城市?
</p> <ul id="city">
<li id="bj">北京</li>
<li>南京</li>
<li>东京</li>
<li>上海</li>
</ul> <br> <p>
你喜欢那款游戏?
</p> <ul id="game">
<li id="wz">王者荣耀</li>
<li>飞车</li>
<li>联盟</li>
<li>DNF</li>
</ul> <br> <p>
你的手机是什么品牌?
</p> <ul id="phone">
<li>华为</li>
<li id="ML">小米</li>
<li>oppo</li>
<li>一加</li>
</ul>
</div> <div class="inner">
gender:
<input type="radio" name="gender" value="male">
Male
<input type="radio" name="gender" value="female">
Female <br>
name:
<input type="text" name="name" id="username" value="md">
</div>
</div> <div id="btuList">
<div><button id="b01">查找#bj节点</button></div>
<div><button id="b02">查找所有 li 节点</button></div>
<div><button id="b03">查找 name=gender 的所有节点</button></div>
<div><button id="b04">查找#city 下所有 li 节点</button></div>
<div><button id="b05">返回#city 的所有子节点</button></div>
<div><button id="b06">返回#phone 的第一个子节点</button></div>
<div><button id="b07">返回#bj 的父节点</button></div>
<div><button id="b08">返回#android 的前一个兄弟节点</button></div>
<div><button id="b09">返回#username 的 value 属性值</button></div>
<div><button id="b10">设置#username 的 value 属性值</button></div>
<div><button id="b11">返回#city 的文本值</button></div>
</div>
</body>
</html>

Java Web(1)-JavaScript的更多相关文章

  1. Java web之javascript(2020.1.6)

    1.js输出: windows.alert()---警告框 document.write()---写到html文档中 innerHTML---写到HTML元素 console.log()---写到浏览 ...

  2. Java Web开发——HTML CSS JavaScript 杂记

    HTML是一种在互联网上常见的网页制作标注性语言,并不能算作一种程序设计语言.因为它相对程序设计语言来说缺少了其应所有的特征.对于网站设计人员来说,只使用HTML是不够的,需要在页面中引入CSS样式. ...

  3. java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化

    一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...

  4. JAVA WEB项目中各种路径的获取

    JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报  分类: JAVA开发(41)  1.可以在s ...

  5. Java Web 学习路线

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...

  6. 零基础如何系统学习Java Web

    零基础如何系统学习Java Web?   我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...

  7. Java EE 和 Java Web

    什么是 Java Web 应用程序? Java Web 应用程序会生成包含各种类型的标记语言(HTML 和 XML 等)和动态内容的交互式 Web 页.它通常由 Web 组件组成(如 JavaServ ...

  8. Java Web 开发利用Struts2+Spring+mybatis写一个用户登录界面以及简单的数据交互

    框架的东西太复杂也难以讲通,直接上代码: 一.首先得配置环境 和导入必要的jar包 有一些重要的如下: Filter文件夹下的SafetyFilter.java   model文件夹下的 Global ...

  9. [Java Web整合开发王者归来·刘京华] 1、 Java Web开发

      目录: 1.Web技术简介 2.动态网站与静态网站 3.Java Web开发模式 4.JavaScript简介 1.Web技术简介 PS: 最近还有更凶残的技术,即整个操作系统都是基于Web的,如 ...

随机推荐

  1. docer

    docker默认是不保存文件的,包保存文件需要进行映射 dockerfile编写如下 直接下面的命令会失败 因为run后面的命令/bin/bash会失败,执行的是dockffile中定义的httpd ...

  2. 00【笔记】 Shiro登陆过滤提示信息

    Shiro登陆过滤 提示信息 package top.yangbuyi.system.shiro; import com.alibaba.fastjson.JSONObject; import org ...

  3. 基于AOP和ThreadLocal实现日志记录

    基于AOP和ThreadLocal实现的一个日志记录的例子 主要功能实现 : 在API每次被请求时,可以在整个方法调用链路中记录一条唯一的API请求日志,可以记录请求中绝大部分关键内容.并且可以自定义 ...

  4. 七.数据分页原理,paginator与page对象

    1.分页: Paginator对象 Page对象 2.Paginator: class Paginator(object_list, per_page, orphans=0, allow_empty_ ...

  5. 初探RabbitMQ消息队列

    SpringBoot 是为了简化 Spring 应用的创建.运行.调试.部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖 ...

  6. 每日一题 - 剑指 Offer 47. 礼物的最大价值

    题目信息 时间: 2019-07-02 题目链接:Leetcode tag:动态规划 难易程度:中等 题目描述: 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0). ...

  7. POJ 1852 Ants(贪心)

    POJ 1852 Ants 题目大意 有n只蚂蚁在木棍上爬行,每只蚂蚁的速度都是每秒1单位长度,现在给你所有蚂蚁初始的位置(蚂蚁运动方向未定),蚂蚁相遇会掉头反向运动,让你求出所有蚂蚁都·掉下木棍的最 ...

  8. # Mysql常用函数总结(一)

    Mysql常用函数总结(一) 博客已搬家,更多内容查看https://liangyongrui.github.io/ 遇到什么总结什么 DATE_SUB(date,INTERVAL expr type ...

  9. 小书MybatisPlus第2篇-条件构造器的应用及总结

    一.条件构造器Wrapper Mybatis Plus为我们提供了如下的一些条件构造器,我们可以利用它们实现查询条件.删除条件.更新条件的构造. 条件构造器用于给如下的Mapper方法传参,通常情况下 ...

  10. Flask——实现上传功能

    1.实例 #!-*-coding=utf-8-*- # from flask import Flask # # app = Flask(__name__) # # # @app.route('/') ...