本节内容:

1.上节内容回顾

2.JavaScript补充

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

一、上节内容回顾

1.作业问题:

a.页面布局不好看

  1. floatclearbothmarginpadding
  2. position:
  3. left:
  4. 参考网上的模板
  5. HTML模板,bootstrap

b.背景图片

2.内容回顾

a. HTML

一堆标签:行内,块级标签

b.CSS

  1. position
  2. background
  3. text-align
  4. margin
  5. padding
  6. font-size
  7. z-index
  8. over-flow
  9. :hover
  10. opacity
  11. float (clear:both)
  12. line-height
  13. border
  14. color
  15. display

3.页面布局

  1. 主站—
  2. <div class='pg-header'>
  3. <div style='width:980px;margin:0 auto;'>
  4. 内容自动居中
  5. </div>
  6.  
  7. </div>
  8. <div class='pg-content'></div>
  9. <div class='pg-footer'></div>

主站布局

  1. position:
  2. fiexd -- 永远固定在窗口的某个位置
  3. relative -- 单独无意义
  4. absolute -- 第一次定位,可以在指定位置,滚轮滚动时,不在了。。。。
  5.  
  6. a.
  7. 左侧菜单跟随滚动条
  8. b.
  9. 左侧以及上不不动 ******

后台管理布局

页面布局范例1

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. body{
  8. margin: 0;
  9. }
  10. .left{
  11. float: left;
  12. }
  13. .right{
  14. float: right;
  15. }
  16. .pg-header{
  17. height: 48px;
  18. background-color: #2459a2;
  19. color: white;
  20. }
  21. .pg-content .menu{
  22. width: 20%;
  23. background-color: red;
  24. min-width: 200px;
  25. height: 500px;
  26. }
  27. .pg-content .content{
  28. width: 80%;
  29. background-color: green;
  30. overflow: auto;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="pg-header" ></div>
  36. <div class="pg-content" >
  37. <div class="menu left">a</div>
  38. <div class="content left" >
  39. <p>b</p>
  40. </div>
  41. </div>
  42. <div class="pg-footer"></div>
  43. </body>
  44. </html>

4.当鼠标放到item上为内容加上样式

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <link rel="stylesheet" href="font-awesome-4.7.0/css/font-awesome.min.css"/>
  7. <style>
  8. .item{
  9. background-color: #dddddd;
  10. }
  11. .item:hover{
  12. color: red;
  13. }
  14. .item:hover .b{
  15. background-color: green;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <div class="item">
  21. <div class="a">
  22. <i class="fa fa-superpowers" aria-hidden="true"></i>
  23. </div>
  24. <div class="b">456</div>
  25. </div>
  26. </body>
  27. </html>

补充:http://fontawesome.io/ 下载图标

5.javascript回顾

a.for 循环

  1. for(var item in [11,22,33,44]){
  2. console.log(item)
  3. }
  4.  
  5. var arra = [11,22,33,44]
  6. for(var i=0;i<arra.length;i++){
  7. console.log(item)
  8. break;
  9. }

b.while循环

  1. while(条件){
  2.  
  3. }

c.条件语句

  1. if(){
  2.  
  3. }else if(){
  4.  
  5. }else{
  6.  
  7. }

除了Python其他语言都有的条件语句

  1. switch(name){
  2. case '':
  3. age = 123;
  4. break;
  5. case '':
  6. age = 456;
  7. break;
  8. default :
  9. age = 777;
  10. }

二、JavaScript补充

1、函数(普通函数,匿名函数,自执行函数)

a.普通函数

  1. function func(){
  2.  
  3. }

b.匿名函数

  1. function func(arg){
  2. return arg+1
  3. }
  4.  
  5. setInterval("func()", 5000);
  6. 相当于:
  7. setInterval(function(){
  8. console.log(123);
  9. },5000)

c.自执行函数

  1. function func(arg){
  2. console.log(arg);
  3. }
  4. // func(1)
  5.  
  6. (function(arg){
  7. console.log(arg);
  8. })(1)

2、序列化

  1. JSON.stringify() 将对象转换为字符串
  2. JSON.parse() 将字符串转换为对象类型

3、转义

  1. decodeURI( ) URl中未转义的字符
  2. decodeURIComponent( ) URI组件中的未转义字符
  3. encodeURI( ) URI中的转义字符
  4. encodeURIComponent( ) 转义URI组件中的字符
  5. escape( ) 对字符串转义
  6. unescape( ) 给转义字符串解码
  7. URIError URl的编码和解码方法抛出

4、eval

JavaScript中的eval是Python中eval和exec的合集,既可以编译代码也可以获取返回值。

  • eval()
  • EvalError   执行字符串中的JavaScript代码

5、时间

data对象

  1. var d =new Date()
  2.  
  3. d.getXXX
  4. d.setXXX

6、作用域

  1. ================================ 1. 以函数作为作用域 let)================================
  2.  
  3. 其他语言: 以代码块作为作用域
  4. public void Func(){
  5. if(1==1){
  6. string name = 'Java';
  7. }
  8. console.writeline(name);
  9. }
  10. Func()
  11. // 报错
  12.  
  13. Python 以函数作为作用域
  14. 情况一:
  15. def func():
  16. if 1==1:
  17. name = 'alex'
  18. print(name)
  19.  
  20. func()
  21. // 成功
  22. 情况二:
  23. def func():
  24. if 1==1:
  25. name = 'alex'
  26. print(name)
  27. func()
  28. print(name)
  29. // 报错
  30.  
  31. JavaScript: 以函数作为作用域
  32.  
  33. function func(){
  34. if(1==1){
  35. var name = 'alex';
  36. }
  37. console.log(name);
  38. }
  39. func()
  40.  
  41. ================================ 2. 函数的作用域在函数未被调用之前,已经创建 ================================
  42.  
  43. function func(){
  44. if(1==1){
  45. var name = 'alex';
  46. }
  47. console.log(name);
  48. }
  49.  
  50. ================= 3. 函数的作用域存在作用域链,并且也是在被调用之前创建 ==================
  51. 示例一:
  52. xo = "alex";
  53.  
  54. function func(){
  55. // var xo = 'eric';
  56. function inner(){
  57. // var xo = 'tony';
  58. console.log(xo);
  59. }
  60. inner()
  61. }
  62. func()
  63. 示例二:
  64. xo = "alex";
  65.  
  66. function func(){
  67. var xo = 'eric';
  68. function inner(){
  69.  
  70. console.log(xo);
  71. }
  72.  
  73. return inner;
  74. }
  75.  
  76. var ret = func()
  77. ret()
  78.  
  79. 示例三:
  80. xo = "alex";
  81.  
  82. function func(){
  83. var xo = 'eric';
  84. function inner(){
  85. console.log(xo);
  86. }
  87. var xo = 'tony';
  88. return inner;
  89. }
  90. var ret = func()
  91. ret()
  92.  
  93. ================= 4. 函数内局部变量 声明提前 ==================
  94.  
  95. function func(){
  96. console.log(xxoo);
  97. }
  98.  
  99. func();
  100. // 程序直接报错
  101.  
  102. function func(){
  103. console.log(xxoo);
  104. var xxoo = 'alex';
  105. }
  106. 解释过程中:var xxoo;
  107.  
  108. func();
  109. // undefined

三、JavaScript面向对象

a.JavaScript面向对象

  1. function foo(){
  2. var xo = 'alex';
  3. }
  4.  
  5. foo()
  6. function Foo(n){
  7. this.name = n;
  8. this.sayName = function(){
  9. console.log(this.name);
  10. }
  11. }
  12. var obj1 = new Foo('we');
  13. obj1.name
  14. obj1.sayName()
  15. var obj2 = new Foo('wee');
  16. obj2.name
  17. obj2.sayName()

i. this代指对象(python self)
ii. 创建对象时, new 函数()

b. python面向对象

  1. class Foo:
  2. def __init__(self,name):
  3. self.name = name
  4. def sayName(self):
  5. print(self.name)
  6. obj1 = Foo('we')
  7. obj2 = Foo('wee')

原型:

  1. function Foo(n){
  2. this.name = n;
  3. }
  4. # Foo的原型
  5. Foo.prototype = {
  6. 'sayName': function(){
  7. console.log(this.name)
  8. }
  9. }
  10.  
  11. obj1 = new Foo('we');
  12. obj1.sayName()
  13. obj2 = new Foo('wee');

四、DOMdocument object model(文档对象模型)

1. 查找

a.直接查找

  1. var obj = document.getElementById('i1')

b.间接查找

  1. 文件内容操作:
  2. innerText 仅文本
  3. innerHTML 全内容
  4. value
  5. input value获取当前标签中的值
  6. select 获取选中的value值(selectedIndex
  7. textarea value获取当前标签中的值

操作示例:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <div id="i1">
  9. 张杨
  10. <a><span></span></a>
  11. </div>
  12. <input type="text" id="i2" />
  13. <select id="i3">
  14. <option value="">北京1</option>
  15. <option value="">北京2</option>
  16. <option value="">北京3</option>
  17. </select>
  18. <textarea id="i4"></textarea>
  19. </body>
  20. </html>

搜索框范例:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <div style="width: 600px;margin: 0 auto;">
  9. <input id="i1" onfocus="Focus();" onblur="Blur();" type="text" value="请输入关键字"/>
  10.  
  11. <input type="text" placeholder="请输入关键字" />
  12. </div>
  13.  
  14. <script>
  15. function Focus(){
  16. var tag = document.getElementById('i1');
  17. var val = tag.value;
  18. if(val == "请输入关键字"){
  19. tag.value = "";
  20. }
  21. }
  22. function Blur(){
  23. var tag = document.getElementById('i1');
  24. var val = tag.value;
  25. if(val.length ==0){
  26. tag.value = "请输入关键字";
  27. }
  28. }
  29. </script>
  30. </body>
  31. </html>

2.样式操作:

a.class操作

  1. className // 获取所有类名
  2. classList.remove(cls) // 删除指定类
  3. classList.add(cls) // 添加类

obj.style.fontSize = '16px';
obj.style.backgroundColor = 'red';
obj.style.color = "red"

b.属性操作:

  1. attributes
  2. setAttribute
  3. getAttribute
  4. removeAttribute

3.标签

a.创建标签,

  1. // 方式一
  2. var tag = document.createElement('a')
  3. tag.innerText = "wupeiqi"
  4. tag.className = "c1"
  5. tag.href = "http://www.cnblogs.com/youngcheung"
  6.  
  7. // 方式二
  8. var tag = "<a class='c1' href='http://www.cnblogs.com/youngcheung'>youngcheung</a>"

范例--创建标签两种形式:字符串和对象方式

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <input type="button" onclick="AddEle1();" value="+" />
  9. <input type="button" onclick="AddEle2();" value="+" />
  10. <div id="i1">
  11. <p><input type="text" /></p>
    // <hr >#分割线
  12. </div>
  13. <script>
  14. function AddEle1(){
  15. // 创建一个标签
  16. // 将标签添加到i1里面
  17. var tag = "<p><input type='text'/></p>";
  18. // 注意:第一个参数只能是'beforeBegin'、 'afterBegin'、 'beforeEnd'、 'afterEnd'
  19. document.getElementById('i1').insertAdjacentHTML("beforeEnd",tag);
  20. }
  21. function AddEle2(){
  22. // 创建一个标签
  23. // 将标签添加到i1里面
  24. var tag = document.createElement('input');
  25. tag.setAttribute('type', 'text');
  26. tag.style.fontSize = '16px';
  27. tag.style.color = 'red';
  28. var p = document.createElement('p');
  29. p.appendChild(tag);
  30. document.getElementById('i1').appendChild(p);
  31. }
  32. </script>
  33. </body>
  34. </html>

4.提交表单

任何标签通过DOM可以提交表单

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

5.其他操作

  1. console.log 输出框
  2. alert 弹出框
  3. confirm 确认框
  4. // URL和刷新
  5. location.href 获取URL
  6. location.href = "url" 重定向
  7. location.reload() 重新加载
  8. // 定时器
  9. setInterval 多次定时器
  10. clearInterval 清除多次定时器
  11. setTimeout 单次定时器
  12. clearTimeout 清除单次定时器

五、事件

a.参考图

58面试题:

写一个行为样式结构相分离的的页面?

     js  css   html

代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <style>
  8. #test{
  9. background-color: red;width:300px;height:400px;
  10. }
  11. </style>
  12. <body>
  13. <div id="test">
  14. 内容
  15. </div>
  16. <script>
  17. /* 方法一
  18. function t1(){
  19. console.log('dsads');
  20. }
  21. */
  22. var mydiv = document.getElementById("test");
  23. //console.log(mydiv);
  24. mydiv.onclick = function(){
  25. console.log("dsads");
  26. }
  27. </script>
  28. </body>
  29. </html>

范例2:将鼠标放在一个表格上高亮显示

方式一:dom0

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <style>
  8. </style>
  9. <body>
  10. <table border="" width="300px">
  11. <tr onmouseover="t1(0);" onmouseout="t2(0);"><td>1</td><td>2</td><td>2</td></tr>
  12. <tr onmouseover="t1(1);" onmouseout="t2(1);"><td>1</td><td>2</td><td>2</td></tr>
  13. <tr onmouseover="t1(2);" onmouseout="t2(2);"><td>1</td><td>2</td><td>2</td></tr>
  14. </table>
  15. <script>
  16. function t1(n){
  17. var myTrs = document.getElementsByTagName("tr")[n];
  18. // console.log(myTrs);
  19. myTrs.style.backgroundColor = "red";
  20. }
  21. function t2(n){
  22. var myTrs = document.getElementsByTagName("tr")[n];
  23. myTrs.style.backgroundColor = "";
  24. }
  25. </script>
  26. </body>
  27. </html>

方式二:dom1

  1. <body>
  2. <table id="i1" border="" width="300px">
  3. <tr><td>1</td><td>2</td><td>2</td></tr>
  4. <tr><td>1</td><td>2</td><td>2</td></tr>
  5. <tr><td>1</td><td>2</td><td>2</td></tr>
  6. </table>
  7.  
  8. <table id='i2' border="" width="300px">
  9. <tr><td>1</td><td>2</td><td>2</td></tr>
  10. <tr><td>1</td><td>2</td><td>2</td></tr>
  11. <tr><td>1</td><td>2</td><td>2</td></tr>
  12. </table>
  13. <script>
  14. var myTrs = document.getElementsByTagName("tr");
  15. var len = myTrs.length;
  16. for(var i=0;i<len;i++) {
  17. // i=0,i=1,i=2
  18. myTrs[i].onmouseover = function () {
  19. this.style.backgroundColor = "red";
  20. };
  21. myTrs[i].onmouseout = function () {
  22. this.style.backgroundColor = "";
  23. };
  24. }
  25. </script>
  26. </body>
  1. 绑定事件两种方式:
  2. a. 直接标签绑定 onclick='xxx()' onfocus
  3. b. 先获取Dom对象,然后进行绑定
  4. document.getElementById('xx').onclick
  5. document.getElementById('xx').onfocus
  6. this,当前触发事件的标签
  7. a. 第一种绑定方式
  8. <input id='i1' type='button' onclick='ClickOn(this)'>
  9.  
  10. function ClickOn(self){
  11. // self 当前点击的标签
  12.  
  13. }
  14. b. 第二种绑定方式
  15. <input id='i1' type='button' >
  16. document.getElementById('i1').onclick = function(){
  17.  
  18. // this 代指当前点击的标签
  19. }
    c.第三种绑定方式
  1. <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <style>
    #main{
    background-color: red;
    width:300px;
    height:400px;
    }
    #content{
    background-color: pink;
    width:150px;
    height:200px;
    }
    </style>
    <body>
    <div id="main">
    <div id="content"></div>
    </div>
    <script>
    var mymain = document.getElementById("main");
    var mycontent = document.getElementById("content");
    mymain.addEventListener("click",function(){console.log("main")},true);
    mycontent.addEventListener("click",function(){console.log("content")},true);
    </script>
    </body>
    </html>
  1.  

作用域的示例;

  1. var myTrs = document.getElementsByTagName("tr");
  2. var len = myTrs.length;
  3. for(var i=0;i<len;i++){
  4. // i=0,i=1,i=2
  5. myTrs[i].onmouseover = function(){
  6. this.style.backgroundColor = "red";
  7. };
  8. }

Python之路Day16--JavaScript(二)的更多相关文章

  1. Python之路,Day16 - Django 进阶

    Python之路,Day16 - Django 进阶   本节内容 自定义template tags 中间件 CRSF 权限管理 分页 Django分页 https://docs.djangoproj ...

  2. python之路:进阶 二

        c = collections.Counter(  Counter({ b = collections.Counter(  b.update(c)   Counter({ Counter({  ...

  3. python之路(十七)-javascript

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

  4. python之路---面向对象编程(二)

    类的继承 1.在python3中,只有新式类,新式类的继承方式为:广度优先.而python2中,经典类的继承方式为:深度优先.那么我们来看看深度优先和广度优先的区别吧 如下图,为类之间的继承关系.B, ...

  5. Python之路(第二十二篇) 面向对象初级:概念、类属性

    一.面向对象概念 1. "面向对象(OOP)"是什么? 简单点说,“面向对象”是一种编程范式,而编程范式是按照不同的编程特点总结出来的编程方式.俗话说,条条大路通罗马,也就说我们使 ...

  6. Python之路(第十二篇)程序解耦、模块介绍\导入\安装、包

    一.程序解耦 解耦总的一句话来说,减少依赖,抽象业务和逻辑,让各个功能实现独立. 直观理解“解耦”,就是我可以替换某个模块,对原来系统的功能不造成影响.是两个东西原来互相影响,现在让他们独立发展:核心 ...

  7. python之路----常用模块二

    collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...

  8. Python之路-(Django进阶二)

    model: 双下划线: # 获取个数 # # models.Tb1.objects.filter(name='seven').count() # 大于,小于 # # models.Tb1.objec ...

  9. Python之路Day16

    主要内容:Django基础进阶之:Django 流程.Django URL.Django Views.Django Models.Django Template.Django Admin Django ...

  10. python之路-----MySql操作二

    一.主键 1.每个 表只有一个主键 2.每个主键可以由多个列组成.(如果主键由多个组成,只要有一行列值不等即可) CREATE TABLE NAME ( id INT auto_increment, ...

随机推荐

  1. ThinkPHP学习总结

    ThinkPHP学习总结 网站开发使用的thinkPHP5.0在此总结备查 MVC关系功能图 一.Thinkphp开发规范 l 类 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并 ...

  2. excel小技巧

    数据呈文本格式,怎么改成数字? 数据前有'号,如何去掉? 为什么数据格式在修改后需要再双击一下单元格才改过来了? 解决办法:你选中需要更改格式的那列              数据          ...

  3. 数据库 之MySQL 简单教程

      So Easy系列之MySQL数据库教程 1.   数据库概述 1.1.  数据库概述 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和 ...

  4. 判断 .NET Framework安装版本

    How To Determine the .NET Framework Installed Versions This topic is a how to.Please keep it as clea ...

  5. ios 获取文件扩展名备忘

    NSString *lastComponent = [cachePath lastPathComponent];              NSString *pathLessFilename = [ ...

  6. cookie的存储和获取

    在做用户登录时经常会用到cookie,如何将用户名和密码保存至cookie中呢?如何获取cookie中的数据呢? 一.用jquery.cookie.js保存数据 在页面内引入jQuery.cookie ...

  7. python之系统性能信息模块psutil

    系统性能信息模块psutil 跨平台库 轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息. 主要用于系统监控,分析和限制系统资源及进程的管理 实现同等命令行工具提供的功能( ...

  8. Cocoapods - pod install 成功后找不到头文件解决

    问题描述:使用Cocoapods时,import 找不到头文件. 问题原因:这是因为还没设置头文件的目录. 解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写 ...

  9. How GitHub Works《Github是如何工作的?》

    https://github.com/blog/920-how-github-works 如果你想知道Github是如何工作的,你可以看查看Zach Holman(@holman)的三篇文章: Hou ...

  10. 前端弹出层框架layer

    http://www.layui.com/doc/modules/layer.html#layer.confirm