一、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. redis高级命令3哨兵模式

    redis的哨兵模式 现在我们在从服务器1.222上让该从服务器作为哨兵 首先将redis安装包文件下的sentinel.conf文件复制到/usr/local/redis/etc目录下 然后修改se ...

  2. Digix2019华为算法精英挑战赛代码

    Digix2019华为算法精英挑战赛代码 最终成绩: 决赛第九 问题 根据手机型号,颜色,用户偏好,手机APP等信息预测用户年龄. https://developer.huawei.com/consu ...

  3. ceph对象存储RADOSGW安装与使用

    本文章ceph版本为luminous,操作系统为centos7.7,ceph安装部署方法可以参考本人其他文章. [root@ceph1 ceph-install]# ceph -v ceph vers ...

  4. JavaScript基础函数体中的唯一var模式(002)

    全局变量是不好的.所以在声名变量的时候,应该采用函数体中的唯一var模式(Single var Pattern).这个模式有不少好处: 提供了一个唯一的地方来查看函数体中声名的变量 在使用一个变量之前 ...

  5. 2020年的六种编程语言排名中,java排第几只有不到1%的人知道

    前言 编程语言是开发的基础.有不同的类型和特征,并且开发人员针对不同的场景选择正确的语言,但是您知道使用哪种语言吗?中国和世界各地有多少开发人员正在使用它?他们的排名是多少?快来看看您知道多少个列表! ...

  6. 题解 P1144 【最短路计数】

    这道题用一次SPFA就可以过了.在求最短路的同时,对答案进行统计即可. 实现: \(dis_i\)表示从1到\(i\)的最短路(实在还是不懂的话看程序吧). 当\(dis_i>dis_j+1\) ...

  7. 一周学会linux实战笔记

    山篇 思考------实践-------再思考-------再实践 1.高效愉快地学习 2.先建立一个整体框架,然后细节 3.用的什么再学习什么 4.先know how,再know why 5.计算机 ...

  8. Oracle Solaris 10图文安装

    文章目录 1. 虚拟机软件 2. solaris 10镜像 3. 安装OS 4. 允许远程使用root用户登录SSH 5. bash配置 5.1. 修改bash 5.2. 修改提示符 6. CRT连接 ...

  9. css hack原理及常用hack

    原理:利用不同浏览器对CSS的支持和解析结果不一样编写针对特定浏览器样式.常见的hack有1)属性hack.2)选择器hack.3)IE条件注释 IE条件注释:适用于[IE5, IE9]常见格式如下 ...

  10. 让 JavaScript 与 CSS 和 Sass 对话

    JavaScript 和 CSS 已经并存超过了 20 年.但是在它们之间共享数据非常困难.当然也有大量的尝试.但是我所想到的是一些简单而直观的内容——不涉及结构更改,而是使用 CSS 自定义属性甚至 ...