python成长之路15

时间:2023-03-08 23:51:46
python成长之路15

一:JavaScript:

JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。

1、位置:

python成长之路15
<!-- 方式一 -->
<script type"text/javascript" src="JS文件"></script> <!-- 方式二 -->
<script type"text/javascript">
Js代码内容
</script>
python成长之路15

2、JavaScript代码存在位置

  • HTML的head中
  • HTML的body代码块底部(推荐)

由于Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置在body代码块底部,那么即使js代码耗时严重,也不会影响用户看到页面效果,只是js实现特效慢而已。

python成长之路15
如:

<script src="https://www.gstatic.com/og/_/js/k=og.og2.en_US.iF4jnkQuaf0.O/rt=j/t=zcms/m=def/exm=in,fot/d=1/ed=1/rs=AA2YrTv5-POC4Ks9GtGRdY2ywUWisqz7-Q"></script>
<script>
alert('123');
</script>
python成长之路15

例如2,先写正常的代码,将JavaScript写在最下端:

python成长之路15
<body>
<h1>xxxxxx</h1>
<script>
function f1() {
alert("f1")
}
f1()
</script>
</body>
python成长之路15

3、变量

  全局变量

  局部变量

JavaScript中变量的声明是一个非常容易出错的点,局部变量必须一个 var 开头,如果未使用var,则默认表示声明的是全局变量

var name = "seven"  # 局部变量
age = 18 # 全局变量

注释:

 // 

/* */

4、基本数据类型:

数字(Number)

python成长之路15
1
2
3
4
5
var page = 111; #整数
var age = Number(18); #数值
var a1 = 1,a2 = 2, a3 = 3; #多个局部变量
parseInt("1.2"); #转换成整数
parseFloat("1.2"); #抓换成浮点数
python成长之路15

字符串(String):

python成长之路15
var name = "jack";
var name = String("jack");
var age_str = String(18); 常用方法:
obj.trim()
obj.charAt(index)
obj.substring(start,end)
obj.indexOf(char)
obj.length
可以在google浏览器的调试模式的console接口进行调试: 布尔(Boolean): var status = true;
var status = false;
var status = Boolen(1==1)
数组(Array): var names = ['jack', 'tom', 'eric'] 常用方法:
添加
obj.push(ele) 追加
obj.unshift(ele) 最前插入
obj.splice(index,0,'content') 指定索引插入
移除
obj.pop() 数组尾部获取
obj.shift() 数组头部获取
obj.splice(index,count) 数组指定位置后count个字符 切片
obj.slice(start,end)
合并
newArray = obj1.concat(obj2)
翻转
obj.reverse() 字符串化
obj.join('_')
长度
obj.length   字典
  var items = {'k1': 123, 'k2': 'tony'}
  获取值
  items.k1();
 
  序列化:
  #将字典转换为字符串
  s1 = JSON.stringify(items)
  "{"k1":123,"k2":"tony"}"   将字符串序列化为对象:
  s2 = JSON.parse(s1)
  Object {k1: 123, k2: "tony"}
  s2
  Object {k1: 123, k2: "tony"}
python成长之路15

undefined:

undefined表示未定义值
var name;

null:

null是一个特殊值

5、循环语句:

python成长之路15
var names = ["jack", "tony", "rain"];

// 数组:方式一
for(var i=0;i<names.length;i++){
console.log(i);
console.log(names[i]);
}
python成长之路15

如图:

python成长之路15

//属组:方式二

var names = {"name": "jack", "age": 18};
for(var index in names){
console.log(index);
console.log(names[index]);
}

如图:

python成长之路15

//字典循环:

python成长之路15
// 字典:方式一

var names = {"k1":"v1","k2":"v2"}
undefined
for(var index in names){
console.log(index);
console.log(names[index]);
}
python成长之路15

如图:

python成长之路15

while 循环:

while(条件){
// break;
// continue;
}

6、条件语句:

python成长之路15
//if条件语句

    if(条件){

    }else if(条件){

    }else{

    }
var username= 'jack';
var age = 111; // switch,case语句
switch(age){
case 111:
console.log("111");
break;
case 222:
console.log("222");
break;
default :
console.log("333");
age = 333;
}
python成长之路15

7、异常处理:

python成长之路15
try{

}catch(e) {

}finally{

}
#try是正常代码块,catch(e)捕获指定错误,finally当上面都没有执行的时候执行
python成长之路15

8、函数:

python成长之路15
函数1:
function Foo (name,age) {
this.Name = name;
this.Age = age;
this.Func = function(arg){
return this.Name + arg;
}
} var obj = new Foo('jack', 18);
var ret = obj.Func("sb");
console.log(ret); 函数2:
function func(arg){
console.log(arg);
return "uuu"
}
func("jack");
var ret = func("123");
console.log(ret); 函数3:匿名函数
var f= function(arg){
console.log(arg)
};
f("123"); 函数4--自执行函数:
<script>
(function(){
console.log("abc");
})();
</script> 函数5--自执行参数2-带参数:
<script>
(function(arg){
console.log("jack",arg);
})("tom");
</script>
python成长之路15

8、面向对象:基于函数加原型构造数类似于面向对象的功能

python成长之路15
<script>
function Foo(name,age){
this.Name = name;
this.Age = age;
this.Func = function(arg){
return this.Name + arg;
}
} var obj = new Foo("jack",18); console.log(obj.Name);
console.log(obj.Age);
var ret = obj.Func("sb");
console.log(ret); </script>
python成长之路15

二:Dom

文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。

注:一般说的JS让页面动起来泛指JavaScript和Dom

默认格式是查找内容-->操作内容:

修改内容:

python成长之路15
tags = document.getElementsByTagName('h1');  #根据tagName修改:
  [<h1>​xxx​</h1>​, <h1>​yyy​</h1>​]
tags = document.getElementsByTagName('h1');
  [<h1>​xxx​</h1>​, <h1>​yyy​</h1>​]
tags[0];
  <h1>​xxx​</h1>​
tags[0].innerText = "1234";
  "1234"
tags[1].innerText = "2234";
  "2234"
python成长之路15

1、选择器:

python成长之路15
<script type="text/javascript">
var nid = document.getElementById('n1'); //根据标签的id取值,id在性别选择和checkbox的时候是一样的,其他时候不能一样
nid.innerText = "jack";
</script> <script type="text/javascript"> //不指定的话默认就是text/javascript,如果写成别的会导致javascript无法正常使用
var lis = document.getElementsByTagName('li'); //根据标签的名称获取值
for(var i in lis){ //循环一个对象
var item = lis[i]; //取出对象里面的值
item.innerText = i; //innerText 是修改对应key的值
} var lis2 = document.getElementsByClassName('c1'); //根据标签使用的哪一个class获取值
for(var i in lis2){
var item = lis2[i];
item.innerText = i;
}
var username = document.getElementsByName('username')[0]; //根据标签内置的name获取value
var pwd = document.getElementsByName('pwd')[0];
console.log(username.value,pwd.value); //value表示取出对应的值,username.value就是获取到username对应的值,pwd.value就是获取pwd的值
python成长之路15

2、内容:

python成长之路15
innerText
innerHTML var obj = document.getElementById('nid')
obj.innerText # 获取文本内容
obj.innerText = "hello" # 替换文本内容
obj.innerHTML # 获取HTML内容
obj.innerHTML = "<h1>asd</h1>" # 替换HTML内容
特殊的:
input系列
textarea标签
select标签
value属性操作用户输入和选择的值
python成长之路15

通过修改文本内容实现数值自动增加:

python成长之路15
<body>
<div>
<div id="num">1</div>
<input type="button" value="+1" onclick="Add();" />
</div> <script type="text/javascript">
function Add() {
var nid = document.getElementById('num');
var text = nid.innerText;
text = parseInt(text);
text += 1;
nid.innerText = text;
}
</script>
</body>
python成长之路15

获取文本内容:

获取到内部所有标签的文本内容,不包含div,h1等标签:

python成长之路15
<div id="n1">
<h1>jack</h1>
<h1>XX</h1>
</div>
<script type="text/javascript">
var text = document.getElementById("n1");
console.log(text.innerText);
</script>
</body>
python成长之路15

结果:

jack
XX

获取包含标签在和文本内容在内的信息:

python成长之路15
<body>
<div id="n1">
<h1>jack</h1>
<h1>XX</h1>
</div> <script type="text/javascript">
var text = document.getElementById("n1");
console.log(text.innerHTML);
</script>
</body>
python成长之路15

结果:

<h1>jack</h1>
<h1>XX</h1>

特殊性:input、select、textarea:通过value 获取值,不能通过 innerText获取:

python成长之路15
<body>
<div id="n11">alex
<h1>XXX</h1>
</div>
<h1>特殊的:value</h1>
<h3><input type="button" onclick="GetValue();" value="获取值"></h3> <input id = "n22" type="text">
<select id="n33">
<option value="1">上海</option>
<option value="2">广州</option>
<option value="3">深圳</option>
</select>
<textarea id="n44">aa</textarea>
</body> // 通过id获取到值并进行操作
function GetValue(){
var obj = document.getElementById('n22');
alert(obj.value);
obj.value = "2"; //重新赋值
}
python成长之路15

做一个搜索框吧:默认显示"请输入要搜索的内容",当鼠标点到搜索框就则不显示,如果搜索框内没有输入任何内容,当鼠标离开时在显示"请输入要搜索的内容"。

python成长之路15
<body>
<input type="text" id="search" value="请输入要搜索的内容" onfocus="Focus();" onblur="Blur();" />
<script>
function Focus(){
var nid = document.getElementById("search");
var value = nid.value;
if(value == "请输入要搜索的内容") {
nid.value = "";
}else if(value == "请再次输入关键字") {
nid.value = "";
}
}
function Blur(){
var nid = document.getElementById('search');
var value = nid.value;
if(!value.trim()){
nid.value = "请输入要搜索的内容";
}
}
</script>
</body>
python成长之路15

 3、创建标签:

python成长之路15
<body>
<div id="container"></div>
<a href="http://www.baidu.com" onclick="return AddElement();">添加</a>
<script>
function AddElement(){
/*
var nid = document.getElementById('container');
var tag = "<input type = 'text' value='defalut' />";
nid.innerHTML = tag;
container.insertAdjacentHTML("beforeBegin",tag);
return false;
        //return false表示其后面的将不再执行
*/
var createObj = document.createElement('a');
createObj.href = "http://www.baidu.com";
createObj.innerText = "我的搜索";
//nid.innerHTML = createObj;
var nid = document.getElementById('container');
nid.appendChild(createObj);
return false;
}
</script>
</body>
python成长之路15

4、标签属性及修改:

python成长之路15
var obj = document.getElementById('container');
修改固定属性
obj.id
obj.id = "nid"
obj.className
obj.style.fontSize = "yy";
python成长之路15

如图:

python成长之路15

获取默认属性:

python成长之路15

自定义属性
obj.setAttribute(name,value)
obj.getAttribute(name)
obj.removeAttribute(name)

如图:

python成长之路15

总结:有的属性是默认属性可以使用obj.key直接获取,对于没有的属性即自定义可以使用obj.setAttribute("key","value")设置,然使用obj.getAttribute("key")可以获取值

5、提交表单

document.geElementById('form').submit()

6、事件

python成长之路15

特殊的:

window.onload = function(){}
//jQuery:$(document).ready(function(){})
//onload是所有DOM元素创建、图片加载完毕后才触发的。而ready则是DOM元素创建完毕后触发的,不等图片加载完毕。图片还么有渲染,就可以进行事件的执行。
特殊参数:this,event

7、其他功能

python成长之路15
console.log()
alert()
confirm() // URL和刷新
location.href
location.href = "url" window.location.reload() // 定时器
setInterval("alert()",2000);
clearInterval(obj)
setTimeout();
clearTimeout(obj)
python成长之路15

更改style里里面的属性:

var nid = document.getElementById("n1"); #找到id为n1的属性
nid.style.backgroundColor = "green" #进行操作

如图:

python成长之路15

8、提交表单:

不做验证,即不判断用户的输入是否为空:

python成长之路15
<body>

    <form id="forml" action="https://www.sogou.com/web" method="get">
<input name="query" type="text" />
<!-- <input type="submit" value="提交"> /* 方法1,使用submit直接提交 */ -->
<div onclick="Submit();">提交</div>
</form>
<script>
function Submit(){
document.getElementById('forml').submit(); #找到id为forml的并将表单给其提交
}
</script>
</body>
python成长之路15

验证用户的输入是否为空:

python成长之路15
<body>
<form id="forml" action="https://www.sogou.com/web" method="get">
<input name="query" type="text" />
<input type="submit" value="提交" onclick="return MySubmit();" style=" padding: 0px; color: rgb(0, 0, 255); line-height: 1.5 !important;">> </form>
<script>
function MySubmit(){
var q = document.getElementsByName('query')[0];
if(q.value.trim()){
return true
}else {
alert('请输入内容')
return false
}
}
</script>
</body>
python成长之路15

注:提交成功后将是搜狗的搜索界面

定时器:

python成长之路15
<head>
<meta charset="UTF-8">
<title>欢迎光临本网站,您的满意是我们最大的需求!</title>
</head>
<body>
<input type="button" onclick="Stop();" value="停下来吧" >
<input type="button" onclick="Start();" value="继续转吧" > <script>
//setInterval("操作","间隔时间毫秒") obj1 = setInterval("Func()",1000);
//obj2 = setTimeout("Func()",10000); //设置超时时间,即一共转动多少秒
function Stop(){
//清楚定时器
clearInterval(obj1);
//clearTimeout(obj2); //调用超时
} function Start(){
obj1 = setInterval("Func()",1000);
} function Func(){
var text = document.title;
var firstChar = text.charAt(0);
var subText = text.substring(1,text.length);
var newTitle = subText + firstChar;
document.title = newTitle;
}
</script>
</body>
python成长之路15