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的更多相关文章

  1. Python之路day13 web 前端(JavaScript,DOM操作)

    参考链接:http://www.cnblogs.com/wupeiqi/articles/5433893.html day13 1. CSS示例 2. JavaScript 3. DOM操作 上节内容 ...

  2. 初学python之路-day13

    一.函数的嵌套定义 # 概念:在一个函数的内部定义另一个函数 # 为什么要有函数的嵌套定义: # 1)函数fn2想直接使用fn1函数的局部变量,可以讲fn2直接定义到fn1的内部,这样fn2就可以直接 ...

  3. Python之路,Day13 - 堡垒机

    项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒 ...

  4. Python 之路Day13

    匿名函数 一行函数 lambda == def -- 关键字 lambda x:x x 是普通函数的形参(位置,关键字……)可以不接收参数,可以不写 :x 是普通函数的函数值(只能返回一个数据类型), ...

  5. Python自学之路---Day13

    目录 Python自学之路---Day13 常用的三个方法 匹配单个字符 边界匹配 数量匹配 逻辑与分组 编译正则表达式 其他方法 Python自学之路---Day13 常用的三个方法 1.re.ma ...

  6. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  7. Python之路

    Python学习之路 第一天   Python之路,Day1 - Python基础1介绍.基本语法.流程控制              第一天作业第二天   Python之路,Day2 - Pytho ...

  8. python之路 目录

    目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...

  9. Python之路【第十九篇】:爬虫

    Python之路[第十九篇]:爬虫   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...

随机推荐

  1. JAVA实例变量的初始化过程

    假设有这样一段代码: public class Cat { private String name; private int age; public String toString() { retur ...

  2. [Android] 使用Webview进行OAUTH

    1. 源起     最近在弄Google登录,Google登录要求手机上必须按照Google Play Service,有些手机比如小米,没有Google Play Servcie,因此,有必要实现一 ...

  3. 关于iOS8上本地通知接收不到的问题

    在iOS8系统开发使用本地通知时,会出现如下的相关提示语: 1 Attempting to schedule a local notification2 with an alert but haven ...

  4. raphael入门到精通---属性和事件篇

    属性的使用 上一篇文章我们介绍了raphael如何生成基本的图形(元素),对于每个元素来讲,我们可以添加很多的元素(attr) 下面我就来简单的介绍下元素属性的使用(path元素属性我后面单独列出来介 ...

  5. objective-C学习笔记(七) 字符串处理

    字符串NSString NSString 是一个Unicode编码,16位字符的字符序列. NSString 是一个类,拷贝时需要注意. 初始化方法:字面量初始化.初始化器.工厂方法. NSStrin ...

  6. JavaSE复习日记 : 循环语句(for/while/do while)

    /* * 循环语句(for循环,while和do while循环) */ /* * for循环语句 * * for循环语法: * for (表达式1;表达式2;表达式3 ){ * java语句 * } ...

  7. centos7源以及相关的一些命令

    yum makecache:将服务器上的软件包信息在本地缓存,以提高 搜索安装软件的速度. yum update:更新所有的rpm包 yum upgrade:大规模的版本升级,与yum update不 ...

  8. PHP-购物网站开发设计(一)

    2015-07-6 开始使用PHP完成简单购物网站的设计,首先要选择合适的软件平台,所以今天先记录平台的选择与搭建: 我选择使用Apache24 + PHP 5.6 + MySQL 开发环境完成PHP ...

  9. JQuery中判断checkbox是否选中与禁用鼠标右键

    if ($("#wds_checkbox").attr("checked")) { flag = ; } else { flag = ; } 禁用鼠标右键 // ...

  10. 在GridView中实现全选反选的例子

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridView控件.asp ...