<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
table {
border: 1px solid #0094ff;
}
</style>
<script type="text/javascript">
//00.注意,js代码无差别折叠,ctrl+m+h
//01.js代码写在javascript标签中,一般放在 head标签里面(约定_规范),放在其他地方也行
//02.js中定义变量, var关键字,js中定义对象,new Object()
var fox = 123;
var foxage = 18.5;
var foxSex = true;
var foxName = "狐狸一号";
var people = new Object();
people.skill = "吃饭饭";
//03.js中 对象的字面量表示法
var animal = {
skill: "打小动物", height: "18cm"
}
//04.js中 数组长度可变
//js中的数组,可以放任意元素
//js中,变量定义了,未赋值 就是 undefined
var numArr = new Array();
// alert(numArr.length);
numArr.length = 10000;
//alert(numArr.length);
numArr[0] = "小二黑";
numArr[9999] = 998;
//alert(numArr[0] + "||" + numArr[9999] + "||" + numArr[2]);
var haha;
// alert(haha)
//05.判断语句
// string true 数字(除0以外) 对象 数组
// false 0 undefined null NaN
//var smallFox = "胡二皓";
//if (null) {
// alert("这是大女儿");
//} else {
// alert("这是二小姐");
//}
//06.选择语句
//写法 跟c#类似,但是 break 可以不写,会直接向下执行
//var nowDay="星期一";
//switch (nowDay) {
// case "星期一":
// alert("睡觉觉");
// case "星期二", "星期三", "星期四":
// alert("上班班");
// break;
// default:
//}
//07.循环语句
//07.1for c#一样
for (var i = 0; i < 2; i++) {
// alert("捏方便面_哈哈");
}
//07.2while循环 do while
//while (true) {
//}
//do {
//}
//while(true)
//07.3for in 循环
//没有办法tab出来 需要自己写,
//一般用来循环对象
//item 访问到的是属性名,通过对象[属性名]可以取到属性值
//var lunch = {
// food1:"白切鸡",food2:"叉烧饭",food3:"叉烧猪脚双拼"
//}
//for (var item in lunch) {
// alert(item + ":" + lunch[item]);
//}
//08方法(函数)的定义
//命名规范跟c#一样
//形参 和实参可以不匹配,
//如果定义了形参,不传,那么就是undeifned
//如果传多了,只能接收到形参个数一样的实参
//无参无返回值的方法
function SayHi() {
//alert("成龙大哥好啊");
}
//有参无返回值
function EatFood(foodName) {
alert("水煮肉片,味道不错" + foodName + "味道也可以");
}
//EatFood(123);
//有参,又返回值
//js方法有一个默认的返回值 undefined
//也可以理解成,定义变量.未赋值,就是undefined
function BuyFood(money) {
if (money > 5 && money < 10) {
return "兰州拉面";
}
else if (money >= 10) {
return "水煮肉片";
}
}
var someFood = BuyFood("铁板牛肉");
// alert(SayHi());
//09.重要 js中方法也是对象
//可以new出来
//可以为方法对象添加属性
var peopleRun = new Function("alert('123');");
// peopleRun();
peopleRun.sayhi = "1233";
function peopleEatFood() {
alert("肚子饿了,吃饭饭");
}
peopleRun.eatFood = peopleEatFood;
// peopleRun.eatFood();
//匿名函数
//没有名字的函数
peopleEatFood.jump = function () {
alert("大跳,大跳");
}
peopleEatFood.jump();
</script>
</head>
<body>
<table>
<tr>
<td>姓名</td>
</tr>
</table>
</body>
</html>
全局函数
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
//01.alert()输出内容
//02.confirm()选择的框,形参是提示信息,选择确定,返回true 选择取消返回false
//var eatOrNot = confirm("今天中午吃饭吗?");
// alert(eatOrNot);
//03.prompt()输入框,第一个形参,提示信息,第二个形参默认值
//点击确定,获取文本内容,点击取消就为null
//var sleepWhere = prompt("今天中午睡哪里?", "教室我看就不错");
//alert(sleepWhere);
//小练习 让用户依次输入两个数字,然后将这两个数字的和打印给用户看 友情提示,运算符,跟c#一样
var num1 = parseInt( prompt("请输入第一个数字"));
var num2 = parseInt( prompt("请输入第二个数字"));
alert(num1 + num2);
//04.转型parseInt()
//数字,直接转换成数字
//数字+字母,从左往右转换,直到遇到字母,就跳出
//字母+数字,NaN not a num
//alert(parseInt(prompt("请随便输入")));
//alert(parseFloat(prompt("请随便输入")));
//05.math这个函数里面提供了一些数学方法,比如四舍五入,天花板函数
//06.转换数字的新方法
//Number() int float 直接转换 但是不能转换 字母和数字拼接的
// alert(Number(prompt("请输入一些东西")) + 1);
if (Number("abc")) {
alert("对了");
} else {
alert("不对哦");
}
</script>
</head>
<body>
</body>
</html>
dom元素初识
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<input type="button" value="点击吃饭饭" id="btnEatFood" name="ha"/>
<br />
<label>食物名称:</label>
<input type="text" id="foodName" />
</body>
</html>
<script type="text/javascript">
//00.alert可以阻断浏览器线程,其他的弹窗也会阻断线程
//01.通过id获取dom元素
//alert("稍微等一会");
//01.通过id获取dom对象
//document.getElementById("btnEatFood");通过id获取单个对象
//dom元素的属性可读可写
//var inputObj = document.getElementById("btnEatFood");
//inputObj.value = "晚上好好睡觉";
//inputObj.type = "text";
//inputObj.name = "捏哈哈";
// alert(inputObj.value);
//02.元素事件
document.getElementById("btnEatFood").onclick = function () {
alert("大家好,马上吃午饭了");
//获取文本框里面的文本质
alert(document.getElementById("foodName").value);
}
</script>
小练习
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<label>数字1</label>
<input type="text" id="num1" />
<br />
<label>数字2</label>
<input type="text" id="num2" />
<br />
<input type="button" id="sum" value="点击求和" />
<table>
<tr>
<td></td>
</tr>
</table>
</body>
</html>
<script type="text/javascript">
//01.添加点击事件
document.getElementById("sum").onclick = function () {
//获取两个文本框里面的值 加起来,给用户看
var num1 = document.getElementById("num1").value;
var num2 = document.getElementById("num2").value;
alert(parseInt(num1) + parseInt(num2));
}
</script>
dombom
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<ol>
<li id="apple" class="fruit" >小苹果</li>
<li class="fruit">小榴莲</li>
<li id="vegettableOne">小南瓜</li>
<li id="Twodog" class="littleDog">小哈士奇</li>
</ol>
</body>
</html>
<script type="text/javascript">
// window.location = "http://www.baidu.com";
// window.close();
//01.window对象相当于是页面中的顶级对象,
//如果是通过window.xx 的方式写出来的变量 可以省略掉 window.
//我们定义的所有 全局 变量,都相当于为window对象添加属性
window.sayHi = "123";
var fox = "小狐狸";
function sayHello() {
var people = "火星人";
}
//----------分割线=-----------------------------------
//02.dom对象时存放在 window对象的document属性下面
//document对象为我们提供了很多种获取dom元素的方式
//02.1byid 通过id获取单个dom元素
//双标签里面的文本值,通过innerHTML修改
// document.getElementById("apple").innerHTML = "西兰花";
//02.2byClass 获取所有符合 class的 元素 返回的是dom数组无论元素个数是多少个
//注意:写js代码的时候,可能出现没有智能提示---不要不敢写哦
var fruitObjs = document.getElementsByClassName("fruit");
for (var i = 0; i < fruitObjs.length; i++) {
fruitObjs[i].innerHTML = "西洋菜";
}
// document.getElementsByClassName("littleDog").innerHTML = "大哈士奇";
//02.3byTagName获取的也是dom数组
//修改样式,必须通过style点出来,如果在css中 是 background-color的写法 需要改写为 backgroundColor
var liObjs = document.getElementsByTagName("li");
for (var i = 0; i < liObjs.length; i++) {
liObjs[i].style.color = "yellow";
liObjs[i].style.backgroundColor = "#0094ff";
}
//----------分割线=--------------------------s---------
//----------分割线=-----------------------------------
</script>
this
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<input type="button" value="点击明天休息" id="tomorrowSleep"/>
</body>
</html>
<script type="text/javascript">
//js中方法体里面的this 看 这个方法由谁点出来
document.getElementById("tomorrowSleep").onclick = function () {
alert(this.value);
}
//用户点击按钮的时候 浏览器调用了 document.getElementById("tomorrowSleep").onclick();
function sayHello() {
alert(this.value+"1");
}
window.sayHello();
//js中重新为元素属性复制,会覆盖之前的
document.getElementById("tomorrowSleep").onclick = sayHello;
</script>
HTMLText
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<div style="height: 100px; width: 100px; border: 1px solid #0094ff" id="divBox">
<input type="button" value="测试用按钮1" />
<input type="button" value="测试用按钮2" />
<input type="button" value="测试用按钮3" />
</div>
<input type="button" value="HTML" id="btnHTML" />
<input type="button" value="Text" id="btnTEXT" />
</body>
</html>
<script type="text/javascript">
//innerHTML如果设置的是 符合html规范的标签,那么浏览器会解析成html代码
//可以使用InnerHTML来清空某些元素内部的所有元素
document.getElementById("btnHTML").onclick = function () {
var inputStr = prompt("请输入内容_HTML");
//设置给div
document.getElementById("divBox").innerHTML = inputStr;
}
//innerText不管输入什么,都当成字符串
//innerText火狐不支持 contextText(火狐用)
//后面做开发用的是jq
document.getElementById("btnTEXT").onclick = function () {
var inputStr = prompt("请输入内容_Test");
//设置给div
document.getElementById("divBox") = inputStr;
}
</script>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
ol {
list-style: none;
text-align: center;
}
li {
border: 1px solid #0094ff;
width: 200px;
height: 30px;
line-height: 30px;
}
</style>
</head>
<body>
<input type="button" id="btnAdd" value="追加li标签" />
<input type="button" id="btnRemove" value="删除选中li标签" />
<input type="button" id="btnInsert" value="制定位置插入li标签" />
<ol id="olList">
<li>红烧排骨</li>
<li>糖醋里脊</li>
<li>剁椒鱼头</li>
<li>驴肉火烧</li>
<li>鱼香肉丝</li>
</ol>
</body>
</html>
<script type="text/javascript">
//选中的li标签;
var liSelected;
//-----------风格线-下面是方法上面是变量--------
//00.为所有的li标签 添加点击事件
var liObjs = document.getElementsByTagName("li");
//为每一个li标签设置点击事件
for (var i = 0; i < liObjs.length; i++) {
liObjs[i].onclick = highSel;
}
//01.为新增按钮添加点击事件
document.getElementById("btnAdd").onclick = function () {
//01.创建dom元素
var liCreate = document.createElement("li");
//02.接受用户输入,并且将用户输入设置到创建的li标签中
liCreate.innerHTML = prompt("请输入问本值");
//03.追加到ol标签里面
document.getElementById("olList").appendChild(liCreate);
//04设置点击事件
liCreate.onclick = highSel;
}
//02.为删除按钮添加点击事件
//dom元素的删除,注意,不能自杀,需要他杀-通过父元素的 removeChild方法来删除
//dom元素.removeChild方法来删除 只是将dom元素从dom树里面移除,dom元素还在内存中
document.getElementById("btnRemove").onclick = function () {
//02.1测试删除代码
//var liObjs = document.getElementsByTagName("li");
//document.getElementById("olList").removeChild(liObjs[0]);
//调用ol标签的删除放发
document.getElementById("olList").removeChild(liSelected);
//将liselected设置为undifned
liSelected = undefined;
}
//03.为插入按钮 添加点击事件
//注意,insertBefore在指定位置插入dom元素 父元素点出来的
//如果不传指定元素位置,那么在最后追加
document.getElementById("btnInsert").onclick = function () {
//01.创建dom元素
var liCreate = document.createElement("li");
//02.接受用户输入,并且将用户输入设置到创建的li标签中
var inputStr = prompt("请输入问本值");
//判断文本的正确性
if (inputStr == null||inputStr.trim()=="") {
return;
}
//如果不为空才设置
liCreate.innerHTML = inputStr;
//03.插入到指定的位置到
document.getElementById("olList").insertBefore(liCreate, liSelected);
//04设置点击事件
liCreate.onclick = highSel;
}
//修改逻辑
//01.判断是否选中li标签
//02.创建一个文本框
//03.设置文本框的.value
//04.将文本框追加到li标签里面
//05.设置文本框的失去焦点事件onblur
//05.1失去焦点的时候,获取文本框的value值,设置给li标签
//------------全局函数
//高亮选中方法
function highSel () {
//这里的this就是点击的那个li标签
liSelected = this;
//还原其他的li标签的颜色
for (var j = 0; j < liObjs.length; j++) {
liObjs[j].style.color = "black";
}
//高亮显示选中
this.style.color = "pink";
}
</script>
编辑
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<input type="button" value="修改选中" id="btnEdit" />
<ol>
<li>小苹果</li>
<li>小西瓜</li>
</ol>
</body>
</html>
<script type="text/javascript">
//全局变量 保存点击的li标签
var liSelect = undefined;
//添加高亮选中方法
var liObjs = document.getElementsByTagName("li");
for (var i = 0; i < liObjs.length; i++) {
liObjs[i].onclick = function () {
//还原其他
for (var j = 0; j < liObjs.length; j++) {
liObjs[j].style.backgroundColor = "white";
}
this.style.backgroundColor = "pink";
//为全局变量赋值
liSelect = this;
}
}
//为修改按钮添加点击事件
document.getElementById("btnEdit").onclick = function () {
//创建一个input标签
var inputEdit = document.createElement("input");
//设置input标签的value值
inputEdit.value = liSelect.innerHTML;
//清空
liSelect.innerHTML = "";
//将input标签追加到li标签里面
liSelect.appendChild(inputEdit);
//让文本框获得焦点
inputEdit.focus();
//为文本框添加失去焦点事件
inputEdit.onblur = function () {
if (inputEdit.value.trim()=="") {
alert("不能为空");
this.focus();
return;
}
//将文本框的value值 设置给li标签的html值
liSelect.innerHTML = this.value;
}
}
</script>