Python之路Day13
day13主要内容:JavaScript、DOM、jQuery
武Sir blog:http://www.cnblogs.com/wupeiqi/articles/5369773.html
JavaScript
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。
1. JavaScript代码存在形式
<!-- 形式一 --> <script type"text/javascript" src="JS文件"></script> <!-- 形式二 --> <script type"text/javascript"> JS代码内容 </script>
2. JavaScript代码存在位置
HTML的head中 HTML的body代码块底部(推荐)
由于HTML代码是从上到下执行,如果head中的JS代码耗时严重,就会导致用户长时间无法看到页面,如果放置在body代码块底部,那么即使JS代码耗时严重,也不会影响用户看到页面内容,只是JS实现特效慢而已。
3. 变量
//全局变量:可以在脚本中的任何位置被引用。 name = "Alex" //局部变量:只存在于声明它的那个函数内部。 var name = "Alex" 良好的编程习惯应该是,在第一次对某个变量赋值时应该用var对其作出声明。在函数内部使用变量时,更应该如此。
4. 基本数据类型
4.1 数值(Number)
var page = 111; var age = Number(18); var a1 = 1,a2 = 2, a3 = 3; parseInt("1.2"); //转换成int类型 parseFloat("1.2"); //转换成float类型
4.2 字符串(String)
var name = "Alex"; var name = String("Alex"); var ageStr = String(18); 常用方法: obj.trim() //去除空格 obj.charAt(index) //指定索引位 obj.substring(start,end) //切片 obj.indexOf(char) //求索引值 obj.length //长度
4.3 布尔值(Boolean)
var status = true; var status = false; var status = Boolen(1==1)
4.4 数组(Array)
var names = ['alex', 'john', 'eric'] var names = Array('alex', 'john', '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 = Array();items["name"] = "computer";items["year"] = 2000;items["running"] = false;不推荐这样使用。本质上,在创建关联数组时,你创建的是Array对象的属性。在JavaScript中,所有的变量实际上都是某种类型的对象。因此,理想状态下,不应该修改Array对象的属性,而应该使用通用的对象(Object)来表达这种情形。
4.5 对象(Object)
与数组类似,对象也是使用一个名字表示一组值。对象的每个值都是对象的一个属性。
var person = new Object; persion.name = "Alex"; persion.age = 18;
类似于Python的字典类型?
//这里的persion是一个对像,类似于Python中的字典? var persion = {'name': "Alex", 'age': 18}; console.log(persion.name); console.log(persion.age);
4.6 undefined
undefined表示未定义值,即表示变量不含有值。
4.7 null
null是一个特殊值,可以通过将null赋值给变量来清空该变量。
5. 循环语句
var num = 2; //循环 console.log("For循环:"); nameArray = ["Alex", "John", "Eric"]; //一种循环数组的方法 for(var i=0;i<nameArray.length;i++){ console.log(i); console.log(nameArray[i]); } //另外一种循环数组的方法 for(var inx in nameArray){ console.log(inx); console.log(nameArray[inx]); } console.log("While循环:");var num = 1;while(i < 10){ console.log(num); num++;} console.log("do while循环:");var num = 1;do { console.log(num); num++;} while (num < 10); //continue和break while (num < 10){ if (num == 5){ num ++; continue; //跳过本次循环 } if (num == 7){ break; //跳出循环 } console.log(num); num ++; }
6. 条件语句
var num = 2; //条件判断 console.log("if条件判断:"); if(num == 1){ console.log("num=1"); }else if (num == 2){ console.log("num=2"); }else if (num == 3){ console.log("num=3"); }else { console.log("unknown num!"); } //switch判断 console.log("switch判断:"); switch (num){ case 1: console.log("num=1"); break; case 2: console.log("num=2"); break; case 3: console.log("num=3"); break; default: console.log("unknown num!"); }
7. 异常处理
var num = 2; //异常处理 console.log("异常处理:"); try{ console.log(num=2); }catch(e){ console.log(e); }finally { console.log("finally do something..."); }
8. 函数
//函数声明 function func1(arg){ console.log(arg); return "alex"; } var ret = func1("1111"); console.log(ret); //匿名函数 var f = function(arg){ console.log("1111", arg); }; f("2222"); //自执行函数 (function (arg){ console.log(arg); })("123");
JavaScript 内嵌函数:
所有函数都能访问全局变量。
实际上,在 JavaScript 中,所有函数都能访问它们上一层的作用域。
JavaScript 支持嵌套函数。嵌套函数可以访问上一层的函数变量。
该实例中,内嵌函数 plus() 可以访问父函数的 counter 变量:
function add() { var counter = 0; function plus() {counter += 1;} plus(); return counter; }
JavaScript 闭包:
var add = (function () { var counter = 0; return function () {return counter += 1;} })();
这个叫作 JavaScript 闭包。它使得函数拥有私有变量变成可能。
计数器受匿名函数的作用域保护,只能通过 add 方法修改。
9. 面向对象
//面向对象 function Foo(name, age){ this.Name=name; this.Age=age; this.Func=function(arg){ return this.Name + arg; } } var obj = new Foo("alex", 18); var ret1 = obj.Func("humor"); console.log(ret1);
DOM
文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。
注:一般说的JS让页面动起来泛指JavaScript和Dom
1. 选择器
document.getElementById('id'); document.getElementsByName('name'); document.getElementsByTagName('tagname');
2. 内容
innerText innerHTML var obj = document.getElementById('nid') obj.innerText # 获取文本内容 obj.innerText = "hello" # 设置文本内容 obj.innerHTML # 获取HTML内容 obj.innerHTML = "<h1>q1mi</h1>" # 设置HTML内容 特殊的: input系列 textarea标签 select标签 value属性操作用户输入和选择的值
3. 创建标签
方式一: var obj = document.createElement('a'); obj.href = "http://www.liwenzhou.com; obj.innerText = "q1mi"; var container = document.getElementById('container'); //container.appendChild(obj); //container.insertBefore(obj, container.firstChild); //container.insertBefore(obj, document.getElementById('hhh')); 方式二: var container = document.getElementById('container'); var obj = "<input type='text' />"; container.innerHTML = obj; //'beforeBegin', 'afterBegin', 'beforeEnd', 'afterEnd' //container.insertAdjacentHTML("beforeEnd",obj);
4. 标签属性
var obj = document.getElementById('container'); 固定属性 obj.id obj.id = "nid" obj.className obj.style.fontSize = "88px"; 自定义属性 obj.setAttribute(name,value) obj.getAttribute(name) obj.removeAttribute(name)
5. 提交表单
document.geElementById('form').submit()
6. 事件
7. 特殊
window.onload = function(){} //jQuery:$(document).ready(function(){}) //onload是所有DOM元素创建、图片加载完毕后才触发的。而ready则是DOM元素创建完毕后触发的,不等图片加载完毕。图片还么有渲染,就可以进行事件的执行。 特殊参数:this,event
8. 其他
console.log() alert() confirm() // URL和刷新 location.href location.href = "url" window.location.reload() // 定时器 setInterval("alert()",2000); clearInterval(obj) setTimeout(); clearTimeout(obj)
jQuery
jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多),对javascript进行了封装,是的更加便捷的开发,并且在兼容性方面十分优秀。
http://www.php100.com/manual/jquery/
参考:http://www.runoob.com/jquery/jquery-tutorial.html
jQuery 安装
网页中添加 jQuery
可以通过多种方法在网页中添加 jQuery。 您可以使用以下方法:
从 jquery.com 下载 jQuery 库
从 CDN 中载入 jQuery, 如从 Google 中加载 jQuery
下载 jQuery
有两个版本的 jQuery 可供下载:
Production version - 用于实际的网站中,已被精简和压缩。
Development version - 用于测试和开发(未压缩,是可读的代码)
以上两个版本都可以从 jquery.com 中下载。
jQuery 库是一个 JavaScript 文件,您可以使用 HTML 的 <script> 标签引用它:
<script src="jquery-2.2.3.js"></script>
提示: 将下载的文件放在网页的同一目录下,就可以使用jQuery。
替代方案
如果您不希望下载并存放 jQuery,那么也可以通过 CDN(内容分发网络) 引用它。
百度、新浪、谷歌和微软的服务器都存有 jQuery 。
如果站点用户是国内的,建议使用百度、新浪等国内CDN地址,如果站点用户是国外的可以使用谷歌和微软。
例如从谷歌引用 jQuery,使用以下代码:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
jQuery 语法
jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。
基础语法: $(selector).action()
美元符号定义 jQuery
选择符(selector)"查询"和"查找" HTML 元素
jQuery 的 action() 执行对元素的操作
实例:
$(this).hide() - 隐藏当前元素
$("p").hide() - 隐藏所有 <p> 元素
$("p.test").hide() - 隐藏所有 class="test" 的 <p> 元素
$("#test").hide() - 隐藏所有 id="test" 的元素
文档就绪事件
为了防止文档在完全加载(就绪)之前就运行 jQuery 代码。
如果在文档没有完全加载之前就运行函数,操作可能失败。下面是两个具体的例子:
① 试图隐藏一个不存在的元素
② 获得未完全加载的图像的大小
以下两种方式可以实现文档就绪后再执行jQuery方法:
1.
$(document).ready(function(){ // jQuery methods go here... });
2.
$(function(){ // jQuery methods go here... });
jQuery 选择器
jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。
jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。 它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。
jQuery 中所有选择器都以美元符号开头:$()。
元素选择器
jQuery 元素选择器基于元素名选取元素。
在页面中选取所有 <p> 元素:
$("p")
#id 选择器
jQuery #id 选择器通过 HTML 元素的 id 属性选取指定的元素。
页面中元素的 id 应该是唯一的,所以您要在页面中选取唯一的元素需要通过 #id 选择器。
通过 id 选取元素语法如下:
$("#test")
.class 选择器
jQuery 类选择器可以通过指定的 class 查找元素。
语法如下:
$(".test")
更多实例
注意:为了 jQuery 函数易于维护,应该把 jQuery 函数放到独立的 .js 文件中。
jQuery 事件
jQuery 是为事件处理特别设计的。
什么是事件?
页面对不同访问者的响应叫做事件。
事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。
实例:
①在元素上移动鼠标。
②选取单选按钮
③点击元素
在事件中经常使用术语"触发"(或"激发")例如: "当您按下按键时触发 keypress 事件"。
常见 DOM 事件:
jQuery 事件方法语法
在 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery 方法。
页面中指定一个点击事件:
$("p").click();
定义一个触发事件:
$("p").click(function(){ // action goes here!! });
常用的 jQuery 事件方法
$(document).ready()
$(document).ready() 方法允许我们在文档完全加载完后执行函数。
click()
click() 方法是当按钮点击事件被触发时会调用一个函数。
该函数在用户点击 HTMl 元素时执行。
在下面的实例中,当点击事件在某个 <p> 元素上触发时,隐藏当前的 <p> 元素:
$("p").click(function(){ $(this).hide(); });
dblclick()
当双击元素时,会发生 dblclick 事件。
dblclick() 方法触发 dblclick 事件,或规定当发生 dblclick 事件时运行的函数:
$("p").dblclick(function(){ $(this).hide(); });
mouseenter()
当鼠标指针穿过元素时,会发生 mouseenter 事件。
mouseenter() 方法触发 mouseenter 事件,或规定当发生 mouseenter 事件时运行的函数:
$("#p1").mouseenter(function(){ alert("You entered p1!"); });
hover()
hover()方法用于模拟光标悬停事件。
当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。
$("#p1").hover(function(){ alert("You entered p1!"); }, function(){ alert("Bye! You now leave p1!"); });
blur()
当元素失去焦点时,发生 blur 事件。
blur() 方法触发 blur 事件,或规定当发生 blur 事件时运行的函数:
$("input").blur(function(){ $(this).css("background-color","#ffffff"); });
Python之路Day13的更多相关文章
- Python之路day13 web 前端(JavaScript,DOM操作)
参考链接:http://www.cnblogs.com/wupeiqi/articles/5433893.html day13 1. CSS示例 2. JavaScript 3. DOM操作 上节内容 ...
- 初学python之路-day13
一.函数的嵌套定义 # 概念:在一个函数的内部定义另一个函数 # 为什么要有函数的嵌套定义: # 1)函数fn2想直接使用fn1函数的局部变量,可以讲fn2直接定义到fn1的内部,这样fn2就可以直接 ...
- Python之路,Day13 - 堡垒机
项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒 ...
- Python 之路Day13
匿名函数 一行函数 lambda == def -- 关键字 lambda x:x x 是普通函数的形参(位置,关键字……)可以不接收参数,可以不写 :x 是普通函数的函数值(只能返回一个数据类型), ...
- Python自学之路---Day13
目录 Python自学之路---Day13 常用的三个方法 匹配单个字符 边界匹配 数量匹配 逻辑与分组 编译正则表达式 其他方法 Python自学之路---Day13 常用的三个方法 1.re.ma ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
- Python之路
Python学习之路 第一天 Python之路,Day1 - Python基础1介绍.基本语法.流程控制 第一天作业第二天 Python之路,Day2 - Pytho ...
- python之路 目录
目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
随机推荐
- JAVA实例变量的初始化过程
假设有这样一段代码: public class Cat { private String name; private int age; public String toString() { retur ...
- [Android] 使用Webview进行OAUTH
1. 源起 最近在弄Google登录,Google登录要求手机上必须按照Google Play Service,有些手机比如小米,没有Google Play Servcie,因此,有必要实现一 ...
- 关于iOS8上本地通知接收不到的问题
在iOS8系统开发使用本地通知时,会出现如下的相关提示语: 1 Attempting to schedule a local notification2 with an alert but haven ...
- raphael入门到精通---属性和事件篇
属性的使用 上一篇文章我们介绍了raphael如何生成基本的图形(元素),对于每个元素来讲,我们可以添加很多的元素(attr) 下面我就来简单的介绍下元素属性的使用(path元素属性我后面单独列出来介 ...
- objective-C学习笔记(七) 字符串处理
字符串NSString NSString 是一个Unicode编码,16位字符的字符序列. NSString 是一个类,拷贝时需要注意. 初始化方法:字面量初始化.初始化器.工厂方法. NSStrin ...
- JavaSE复习日记 : 循环语句(for/while/do while)
/* * 循环语句(for循环,while和do while循环) */ /* * for循环语句 * * for循环语法: * for (表达式1;表达式2;表达式3 ){ * java语句 * } ...
- centos7源以及相关的一些命令
yum makecache:将服务器上的软件包信息在本地缓存,以提高 搜索安装软件的速度. yum update:更新所有的rpm包 yum upgrade:大规模的版本升级,与yum update不 ...
- PHP-购物网站开发设计(一)
2015-07-6 开始使用PHP完成简单购物网站的设计,首先要选择合适的软件平台,所以今天先记录平台的选择与搭建: 我选择使用Apache24 + PHP 5.6 + MySQL 开发环境完成PHP ...
- JQuery中判断checkbox是否选中与禁用鼠标右键
if ($("#wds_checkbox").attr("checked")) { flag = ; } else { flag = ; } 禁用鼠标右键 // ...
- 在GridView中实现全选反选的例子
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridView控件.asp ...