Python 15 html 基础 jQuery & Javascript研究

基础内容

  DOM操作

  javascript探讨

  JQuery初识

DOM

innerText  ==>获取仅文本

innerHtml  ==>获取全部内容

1 <div id="aaa">dandy<span>aaa</span>taylor</div>

value

  input value 获取当前标签的值

  select 获取选中的value值 selectIndex

  textarea 获取标签的值

  

  tooltip:   

    placeholder ="请输入关键字"   ==> html5里面可以直接看到input标签的提示字符。

    onfocus; onblur  光标锁定,光标消失事件。

属性操作

  setAttribute

  getAttribute

  removeAttribute

 

创建标签:

   1 var tag = "<input type=‘button‘ />" 2 document.getElementById("aaa").insertAdjacentHTML("beforeEND",tag);

1 var tag = document.createElement(‘input‘) 2 tag.setAttribute(‘type‘,‘text‘) 3 document.getElementById(‘aaa‘).appendChild(tag)

其他功能

   1 var conf = confirm("确定删除么?") 2 console.log(conf)

    如果点击确认,则返回true;如果点击取消,则返回false.

  

location.href  获取当前url
location.href = "" 重新定向
location.reload()  刷新
1 var obj = setInterval(function(){
2     console.log(1);
3 },1000)
4 clearInterval(obj)清空定时器
5
6 setTimeout("func()",5000)  邮箱删除提醒,删除邮件

Javascript

javascript的函数:    

1、普通函数
function func(){
    ...
    }
2、匿名函数
setInterval(function(){
    ...
},1000)
3、自执行函数
(function(arg){
   console.log(arg);
})

序列化

  JSON.stringify(li)  ==> 数组转换成字符串

  JSON.parse()  ==> 字符串转换成对象

转义

  encodeURL(url)

  decodeURL(url)

  客户端(cookie)  ==> 服务器端

  将数据经过转义后保存在cookie

eval

  python:

    val = eval(表达式)

    exec(代码)

    python里面eval后面写一个表达式,实际上是做不了的

  javascript:

    eval 是python的eval跟exec的合集

时间

  date对象

  创建时间对象

  var d = new Date()

作用域:

  python中是以函数作为作用域的:

1 def func():
2     if 1==1:
3         name="dandy"
4    print(name)

  其他语言以{}作为作用域

public void func()
{
  if(1==1){
  string name = "dandy"
}
  console.write(name)
}//# 会报错的。

**********************javascript中以函数作为作用域(除了let)

**********************函数的作用域在函数未被调用前,就已经被创建

**********************函数的作用域存在作用域链并且也是在被调用前创建

1      obj = ‘text‘
2         function func(){
3             var obj = ‘dandy‘;
4             function inner(){
5                 var obj = ‘renee‘;
6                 console.log(obj)
7             }
8             inner()  ==>所以这边调用贤惠在函数本身查找 obj, 没有的话去上层"dandy",没有的话再上层"text",再没有就报错。
9         }
 1      所以下面这段代码
 2           obj = ‘text‘
 3         function func(){
 4             var obj = ‘dandy‘;
 5             function inner(){
 6                 console.log(obj)
 7             }
 8             return inner;
 9          }
10          var ret = func()
11          ret() 的输出是dandy
12 ====================函数的作用域在函数未被调用前,就已经被创建
 1      所以下面这段代码
 2           obj = ‘text‘
 3         function func(){
 4             var obj = ‘dandy‘;
 5             function inner(){
 6                 console.log(obj)
 7             }
 8             var obj = ‘renee‘;
 9             return inner;
10          }
11          var ret = func()
12          ret() 的输出是renee
13     解释器解释的时候,内部代码不执行,只创建作用域,所以解释器从上到下解释(先作用域)。首先 var obj,然后func,inner,然后执行ret=func(),此时xo="alex",执行func时,obj=‘dandy‘,obj = ‘renee‘,最后执行inner,此时obj="renee"

*******************************javascript函数内部局部变量会提前申明

function func(){
  console.log(xxoo);
  var xxoo = "dandy"
}
func()
输出什么?
undefined

函数在生成作用域链的同时,会将所有的局部变量定义一下(不赋值)

词法分析:

 

切记词法分析:1、形式参数;2、局部变量;3、函数声明表达式;执行函数

javascript 面向对象

 1     function foo(){
 2         var name ="dandy";
 3     }
 4     foo()
 5 相当于
 6     function foo(){
 7         var name ="dandy";
 8     }
 9     var obj = new Foo()
10     obj.name ==> "dandy"

那么再看下面这个案例代码

1 function Foo(n){
2         this.name = n;
3     }
4     var obj = new Foo("dandy")

这里的this就相当于python中的self。创建对象用new 函数();

 1 function Foo(n){
 2         this.name = ‘n‘
 3         this.sayname = function(){
 4             console.log(this.name);
 5         }
 6     }
 7     var obj1 = new Foo("renee");
 8     obj1.name;
 9     obj1.sayname()
10
11     var obj2 = new Foo("renee");
12     obj2.name;
13     obj2.sayname()
14     javascript 会在内存中创建2个对象,重复;而且对象在内存中也是2个sayname();重复定义
 1  原型
 2     function Foo(n){
 3         this.name = n;
 4     }
 5     # Foo 原型
 6     Foo.prototype = {
 7         ‘sayname‘:function(){
 8             console.log(this.name)
 9         }
10     }
11     obj1 = new Foo(‘dandy‘)
12
13     obj2 = new Foo(‘renee‘)
14     类里面没有重复定义原型,对象去类的原型去查找,这样避免了重复定义类

下面我们来讲一下DOM里面的this,大家先记住一句话,谁调用事件或者函数,this就指向谁

绑定事件的两种方式:

  this  当前出发事件标签

    a、第一种绑定方式

    <input type=‘button‘ onclick = ‘clickon(this)‘>

    b、第二种绑定方式

    document.getElementById("id").onclick=function(){

      this ==>被调用的标签对象

  }

    c、第三种绑定方式(click 绑定2个方法同时)

    var mydiv = document.getElementById("id")

    mydiv.addEventlistener("click",function(){console.log(‘aa‘)},false)

    mydiv.addEventlistener("click",function(){console.log(‘bb‘)},false) 

  特别注意一下下面这张图

<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")},false);
//    mycontent.addEventListener(‘click‘,function() {console.log("content")},false);

    mymain.addEventListener(‘click‘,function() {console.log("main")},true);
    mycontent.addEventListener(‘click‘,function() {console.log("content")},true);

//    false ==> 是一种冒泡方式
//    true ==> 则是表示一种捕捉方式

</script>
</body>

 1 this作用域
 2 <body>
 3     <table border="1" width="400px">
 4         <tr><td>1</td><td>1</td><td>1</td><td>1</td></tr>
 5         <tr><td>1</td><td>1</td><td>1</td><td>1</td></tr>
 6         <tr><td>1</td><td>1</td><td>1</td><td>1</td></tr>
 7         <tr><td>1</td><td>1</td><td>1</td><td>1</td></tr>
 8     </table>
 9     <script>
10         var objs = document.getElementsByTagName("tr");
11         for (var i = 0; i < objs.length; i++){
12             objs[i].onmouseover= function() {
13                 this.style.backgroundColor = "red";
14                 //objs[i].style.backgroundColor = "red"; 因为作用域的问题,所以不可以这样写 for循环先执行解析,i=0、1、2
15                 //但是function还只是放在内存中没有执行
16             };
17             objs[i].onmouseout = function() {
18                 this.style.backgroundColor = "";
19             }
20         }
21     </script>
22 </body>

对于position做页面的补充,跟overflow的联合使用,首先让我们假想这样一种场景,我们需要一个页面,有一个header一直存在在顶端,左边的菜单栏也是一直存在在页面,右边的正文内容则很长,也需要一个下拉框,不改变菜单跟header的情况下,自己滚动:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .pg-header{
 8             background-color: #073763;
 9             height: 50px;
10             width: 100%;
11             color: white;
12         }
13         .content{
14             position: fixed;
15             top: 50px;
16             bottom: 0;
17             left: 0;
18             width: 200px;
19             background-color: seagreen;
20         }
21         .main{
22             position: fixed;
23             top: 50px;
24             right:0;
25             bottom:0;
26             left: 200px;
27             background-color: brown;
28             overflow: auto;
29         }
30     </style>
31 </head>
32 <body style="margin: 0;">
33     <div class="pg-header">
34         Flex
35     </div>
36     <div class="content">菜单</div>
37     <div class="main">
38         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
39         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
40         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
41         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
42         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
43         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
44         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
45         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
46         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
47         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
48         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
49         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
50         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
51         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
52         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
53         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
54         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
55
56     </div>
57 </body>
58 </html>

此时,我们希望右边的可以不考虑菜单跟header的位置保持一直在前段,这时候我们可以看一下下面这段代码:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .pg-header{
 8             background-color: #073763;
 9             height: 50px;
10             width: 100%;
11             color: white;
12         }
13         .content{
14             position: absolute;
15             top: 50px;
16             bottom: 0;
17             left: 0;
18             width: 200px;
19             background-color: seagreen;
20         }
21         .main{
22             position: absolute;
23             top: 50px;
24             right:0;
25             bottom:0;
26             left: 200px;
27             background-color: brown;
28             /*overflow: auto;*/
29         }
30     </style>
31 </head>
32 <body style="margin: 0;">
33     <div class="pg-header">
34         Flex
35     </div>
36     <div class="content">菜单</div>
37     <div class="main">
38         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
39         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
40         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
41         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
42         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
43         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
44         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
45         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
46         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
47         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
48         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
49         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
50         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
51         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
52         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
53         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
54         <p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p><p>asdfas</p>
55
56     </div>
57
58 </body>
59 </html>

此时,请各位将上面的楼主注释掉的一行overflow恢复出来看看,品味一下。。

min-width   屏幕缩小,出现滚动条的最小宽度

border-radius: 50%标签变成圆形

Tooltips:

font-owesomesublime text3

JQuery 

本来写到这边楼主很激动,冷静下来一看,好像jquery才是真的没什么可以将的东西;基本上jquery就是对于DOM的一些封装方法,就像前面我们写了一些DOM的案例一样封装起来就好。就像document.getElementById(“id”) 等于$("#id")一样,其实这就是对于前面那个方法的一个加强版的封装。简洁方便。

现在比较稳定的jquery版本应该是1.12,楼主随便百度了一个,就随意装了一个3.X的版本,其实作用差不多,1.12对于就版本的兼容性更好,而3.X则是对于html5更友好,都差不多。所以,简而言之,言而简之,jquery就相当于python里面的一个模块一样。至于怎么学习,想了下差不多就是案例吧。

首先,我们先设想下,如果有个input type为text,怎么让它开始有提示字,光标进入就消失;理性分析一波,应该是默认产生提示字,光标进去onfocus写事件清除文本框内容。失去的时候在判断有没有内容。

好,来写一下!

1 <body> 2 <input type="text" placeholder="请输入手机号" /> 3 </body>

效果:

你可能会惊叹一声,然后问我,jquery呢?  em.....别那么认真,现在开始。

先给大家一个网址:http://jquery.cuishifeng.cn/  这是关于jquery的各种方法的调用说明。

  

选择器 

  直接找到某个或者某一类标签

  1、id $("#id")

  2、class  $(".c1")

  3、标签   $("a")

  4、$("a,.c1, #i1") 组合抓取标签;

  5、$("div a") 层级筛选器  $("#id>a") 只找children

筛选器

  :first ==> $("a:first") 取第一个a

  :last

  :eq(1)  ==> $("a:eq(2)") 去index为2的

  :header  ==>  匹配所有p1之类的头部标签

  

  $(‘[dandy]‘)    获取具有dandy属性的标签

  $(‘[dandy=‘123’]‘)    获取具有dandy属性,值为123的标签

  $("input[type=‘text‘]")  获取所有input文本框标签,也可以写成$(":text")

  $(":disabled")   获取所有不可编辑的标签

文本操作

  $(..).text()   # 获取文本内容

  $(..).text(‘a’)   # 文本赋值  包含html  不解析,直接当字符串处理

  $(...).html()    # 获取内容

  $(...).html(‘<p>aaa</p>‘)   # 赋值并解析html标签

  $(..).val()  获取值 ==> val(‘aa‘)  赋值

样式操作

  $(‘#i1‘).addClass(‘hide‘)

  $(‘#i1‘).removeClass(‘hide‘)

  $(‘#i1‘).toggleClass(‘hide‘) # 有hide就删除,没有就显示

案例

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .hide{
 8             display: none;
 9         }
10     </style>
11 </head>
12 <body>
13     <input id="b1" type="button" value="关灯"  />
14     <div id="i1" class="hide">  aaa</div>
15
16 </body>
17 <script src="jqueryfile/jquery-3.2.1.js"></script>
18 <script>
19     $(‘#b1‘).click(function() {
20         $(‘#i1‘).toggleClass(‘hide‘)
21     });
22
23 </script>
24 </html>

属性操作

  专门用于定义自定义属性

    $(..).attr(‘type‘)   # 属性查看

    $(..).attr(‘name‘,‘dandy‘)  #创建属性,设置属性值

    $(..).removeAttr(‘type‘)  # 删除属性

  专门用于checkbox, radio

    $(..).prop(‘checked‘)  # 获取值

    $(..).prop(‘checked‘, true)  #   赋值

  

  index获取索引位置

  $(..).index()

  $(..).append(temp)  # 追加在最后

  $(..).prepend(temp)  #追加在最前面

  $(..).after(temp)  #  追加在对象后面

  $(..).before(temp)  #  在对象前面

  $(‘#id‘).prependTo()   # 整体对象移到目标标签

文档处理

  $(..).eq(1).empty()  # 清空标签内容

  $(..).eq(1).remove()  # 清空标签内容,删除标签

  $(..).eq(1).clone()  #  克隆一份标签

增加

  DOM  ==> var td = document.createElement(‘td‘)

       td.innerHTML="用户输入的值"

css处理

  $(‘#t1‘).css(‘样式名‘,‘样式值‘)

位置

  scrollTop(val)、scrollLeft(val)   向上、向左移动

  $(window).scrollTop()  # 获取  $(window).scrollTop(0) # 返回顶部

  

  offset 指定坐标在html中的坐标

  offset().top()

  

  position relative

    offset   指定标签相对于父标签的位置坐标(一直找到上一个relative标签为止,不一定上父标签)

jQuery绑定事件

  a、$(‘.c1‘).click(function(){})

  b、$(‘.c2‘).bind(‘click‘,function(){})

      $(‘.c2‘).unbind(‘click‘,function(){})

  委托

  c、$(‘.c1‘).delegete(‘a‘,‘click‘,function(){})  c1内部所有a标签绑定事件

  c、$(‘.c1‘).undelegete(‘a‘,‘click‘,function(){}) c1内部所有a标签解绑事件

  $(‘.c1‘).on(‘click‘,function(){})

  $(".c1").off(‘click‘,function(){})

这里的委托事件跟其他绑定事件有一点不同,比如我们之前写过一个添加的表格,delegete的委托绑定会给后面新添加的tr也绑定事件。

阻止事件发生

  return false;

 1 <body>
 2     <a id="a1" href="http://www.baidu.com">点我</a>
 3 </body>
 4 <script src="jquery-1.4.1.min.js">
 5 </script>
 6 <script>
 7     $(‘#a1‘).click(function(){
 8         return false;
 9     })
10 </script>

1、页面框架加载完成后自动执行:

  $(function(){

  $(...)

})

2、当前页面所有元素全部加载完毕后执行

  $(‘#id‘).click(function(){

  ....

})  

  

jQuery的扩展

一、

  $.extend({

  ‘renee‘:function(){

    return ‘beauty‘

}

})

调用   $.dandy();

二、

  $.fn.extend({

    ‘dandy‘, function(){

      return ‘em‘

}

});

调用   $(‘.i1‘).dandy()

避免扩展包全局变量冲突

(function(){

  var ...

})(jQuery).

具体实例一、简易菜单栏

一句话搞定:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .header{
 8             width: 200px;
 9             background-color: #073763;
10         }
11         .hide{
12             display: none;
13         }
14     </style>
15 </head>
16 <body>
17     <div style="height: 400px;width: 200px;">
18         <div class="item">
19             <div class="header">标题一</div>
20             <div class="content hide">内容</div>
21         </div>
22         <div class="item">
23             <div class="header">标题二</div>
24             <div class="content hide">内容</div>
25         </div>
26         <div class="item">
27             <div class="header">标题三</div>
28             <div class="content hide">内容</div>
29         </div>
30         <div class="item">
31             <div class="header">标题四</div>
32             <div class="content hide">内容</div>
33         </div>
34     </div>
35     <script src="jqueryfile/jquery-3.2.1.js"></script>
36     <script>
37         $(".header").click(function() {
38             //筛选器  上一个$(this).prev()    $(this).parent()    $(this).children()  $(this).siblings()
39 //            $(this).next().removeClass(‘hide‘);
40 //            $(this).parent().siblings().find(‘.content‘).addClass(‘hide‘);
41
42 //            既然筛选器可以一直点下去,那么我们是不是可以有一个大胆的想法呢
43 //            是的,jquery支持链式编程
44             $(this).next().removeClass(‘hide‘).parent().siblings().find(‘.content‘).addClass(‘hide‘);
45             //this 是指活动对象header;next==>下一个标签对象;parent父标签;siblings 是指除本身之外的所有兄弟标签
46         })
47     </script>
48 </body>
49 </html>

具体实例二、反选、全选两句话搞定

 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" value="全选" onclick="checkAll()"/>
 9 <input type="button" value="反选" onclick="reverseAll()" />
10 <input type="button" value="取消"  onclick="cancelAll()" />
11     <table border="1px">
12         <thead>
13             <tr>
14                 <th>选项</th><th>ip</th><th>port</th>
15             </tr>
16         </thead>
17         <tbody id="tb">
18             <tr>
19                 <td><input type="checkbox"></td><td>1.1.1.1</td><td>21</td>
20             </tr>
21             <tr>
22                 <td><input type="checkbox"></td><td>1.1.1.1</td><td>21</td>
23             </tr>
24             <tr>
25                 <td><input type="checkbox"></td><td>1.1.1.1</td><td>21</td>
26             </tr>
27             <tr>
28                 <td><input type="checkbox"></td><td>1.1.1.1</td><td>21</td>
29             </tr>
30         </tbody>
31     </table>
32     <script src="jqueryfile/jquery-3.2.1.js">    </script>
33     <script>
34         function checkAll() {
35             $("#tb :checkbox").prop("checked",true);
36         }
37         function cancelAll() {
38             $("#tb :checkbox").prop("checked",false);
39         }
40         function reverseAll() {
41             $("#tb :checkbox").each(function() {
42             //this 代指当前循环的元素,k下标
43                 //DOM方法
44 //            if(this.checked){
45 //                this.checked = false
46 //            } else {
47 //                this.checked = true
48 //            }
49 //                jquery方式
50 //                if($(this).prop(‘checked‘)){
51 //                    $(this).prop(‘checked‘,false);
52 //                }else {
53 //                    $(this).prop(‘checked‘,true)
54 //                }
55 //                三元运算 var v = 条件? 真值:假值  的方式实现
56                 var v = $(this).prop(‘checked‘)?false:true;
57                 $(this).prop(‘checked‘,v);
58
59
60             })
61         }
62     </script>
63 </body>
64 </html>

实例三、加上幕态化效果

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <style>
  7         .cover{
  8             position: fixed;
  9             top:0;
 10             left:0;
 11             right:0;
 12             bottom:0;
 13             background-color: black;
 14             opacity: 0.5;
 15             z-index: 9;
 16         }
 17         .modal{
 18             z-index: 10;
 19             position: fixed;
 20             top:50%;
 21             left:50%;
 22             width: 400px;
 23             height: 250px;
 24             background-color: antiquewhite;
 25             margin-top: -100px;
 26             margin-left: -200px;
 27         }
 28         .hide{
 29             display: none;
 30         }
 31     </style>
 32 </head>
 33 <body>
 34 <div class="cover hide"></div>
 35
 36 <div class="modal hide">
 37     <input name="ip" type="text" placeholder="ip"/>
 38     <input name="port" type="text" placeholder="port" />
 39     <div>
 40         <input type="button" value="确认" />
 41         <input type="button" value="取消" onclick="cancelModel()"/>
 42     </div>
 43
 44 </div>
 45
 46
 47
 48     <table border="1px">
 49         <thead>
 50             <tr>
 51                 <th><input type="button" value="添加" onclick="addModel()"/></th><th>ip</th><th>port</th><th colspan="2">操作</th>
 52             </tr>
 53         </thead>
 54         <tbody id="tb">
 55             <tr>
 56                 <td><input type="checkbox"></td><td>1.1.1.1</td><td>21</td><td><a class="edit">编辑</a></td><td>删除</td>
 57             </tr>
 58             <tr>
 59                 <td><input type="checkbox"></td><td>1.1.1.2</td><td>21</td><td><a class="edit">编辑</a></td><td>删除</td>
 60             </tr>
 61             <tr>
 62                 <td><input type="checkbox"></td><td>1.1.1.3</td><td>21</td><td><a class="edit">编辑</a></td><td>删除</td>
 63             </tr>
 64             <tr>
 65                 <td><input type="checkbox"></td><td>1.1.1.4</td><td>21</td><td><a class="edit">编辑</a></td><td>删除</td>
 66             </tr>
 67         </tbody>
 68     </table>
 69 <input type="button" value="全选" onclick="checkAll()"/>
 70 <input type="button" value="反选" onclick="reverseAll()" />
 71 <input type="button" value="取消"  onclick="cancelAll()" />
 72     <script src="jqueryfile/jquery-3.2.1.js"></script>
 73     <script>
 74         function checkAll() {
 75             $("#tb :checkbox").prop("checked",true);
 76         }
 77         function cancelAll() {
 78             $("#tb :checkbox").prop("checked",false);
 79         }
 80         function reverseAll() {
 81             $("#tb :checkbox").each(function() {
 82             //this 代指当前循环的元素,k下标
 83                 //DOM方法
 84 //            if(this.checked){
 85 //                this.checked = false
 86 //            } else {
 87 //                this.checked = true
 88 //            }
 89 //                jquery方式
 90 //                if($(this).prop(‘checked‘)){
 91 //                    $(this).prop(‘checked‘,false);
 92 //                }else {
 93 //                    $(this).prop(‘checked‘,true)
 94 //                }
 95 //                三元运算 var v = 条件? 真值:假值  的方式实现
 96                 var v = $(this).prop(‘checked‘)?false:true;
 97                 $(this).prop(‘checked‘,v);
 98             })
 99         }
100         function addModel() {
101             $(‘.cover, .modal‘).removeClass(‘hide‘);
102         }
103         function cancelModel() {
104             $(‘.cover, .modal‘).addClass(‘hide‘);
105             $(‘.modal input[type="text"]‘).val("")  //modal 里面 的文本框全部清空
106         }
107         $(‘.edit‘).click(function() {    // 编辑 点击事件
108             $(‘.cover, .modal‘).removeClass(‘hide‘);
109             var tds = $(this).parent().prevAll();
110             var port = $(tds[0]).text(); // port所在的标签td
111             var ip = $(tds[1]).text();  // ip所在的标签
112             $(‘.modal input[name="ip"]‘).val(ip);  // 赋值
113             $(‘.modal input[name="port"]‘).val(port);
114         })
115     </script>
116 </body>
117 </html>

实例四、幕态化 +自定义属性

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <style>
  7         .cover {
  8             position: fixed;
  9             top: 0;
 10             left: 0;
 11             right: 0;
 12             bottom: 0;
 13             background-color: black;
 14             opacity: 0.5;
 15             z-index: 9;
 16         }
 17
 18         .modal {
 19             z-index: 10;
 20             position: fixed;
 21             top: 50%;
 22             left: 50%;
 23             width: 400px;
 24             height: 250px;
 25             background-color: antiquewhite;
 26             margin-top: -100px;
 27             margin-left: -200px;
 28         }
 29
 30         .hide {
 31             display: none;
 32         }
 33     </style>
 34 </head>
 35 <body>
 36 <div class="cover hide"></div>
 37
 38 <div class="modal hide">
 39     <input name="ip" type="text" placeholder="ip"/>
 40     <input name="port" type="text" placeholder="port"/>
 41     <input name="host" type="text" placeholder="host"/>
 42     <div>
 43         <input type="button" value="确认" onclick="confirmModel()"/>
 44         <input type="button" value="取消" onclick="cancelModel()"/>
 45     </div>
 46
 47 </div>
 48
 49
 50 <table border="1px">
 51     <thead>
 52     <tr>
 53         <th><input type="button" value="添加" onclick="addModel()"/></th>
 54         <th>ip</th>
 55         <th>port</th>
 56         <th>host</th>
 57         <th colspan="2">操作</th>
 58     </tr>
 59     </thead>
 60     <tbody id="tb">
 61     <tr>
 62         <td class="check"><input type="checkbox"></td>
 63         <td target="ip">1.1.1.1</td>
 64         <td target="port">21</td>
 65         <td target="host">21</td>
 66         <td><a class="edit">编辑</a></td>
 67         <td class="del">删除</td>
 68     </tr>
 69     <tr>
 70         <td class="check"><input type="checkbox"></td>
 71         <td target="ip">1.1.1.2</td>
 72         <td target="port">21</td>
 73         <td target="host">21</td>
 74         <td><a class="edit">编辑</a></td>
 75         <td class="del">删除</td>
 76     </tr>
 77     <tr>
 78         <td class="check"><input type="checkbox"></td>
 79         <td target="ip">1.1.1.3</td>
 80         <td target="port">21</td>
 81         <td target="host">21</td>
 82         <td><a class="edit">编辑</a></td>
 83         <td class="del">删除</td>
 84     </tr>
 85     <tr>
 86         <td class="check"><input type="checkbox"></td>
 87         <td target="ip">1.1.1.4</td>
 88         <td target="port">21</td>
 89         <td target="host">21</td>
 90         <td><a class="edit">编辑</a></td>
 91         <td class="del">删除</td>
 92     </tr>
 93     </tbody>
 94 </table>
 95 <input type="button" value="全选" onclick="checkAll()"/>
 96 <input type="button" value="反选" onclick="reverseAll()"/>
 97 <input type="button" value="取消" onclick="cancelAll()"/>
 98 <script src="jqueryfile/jquery-3.2.1.js"></script>
 99 <script>
100     function checkAll() {
101         $("#tb :checkbox").prop("checked", true);
102     }
103
104     function cancelAll() {
105         $("#tb :checkbox").prop("checked", false);
106     }
107
108     function reverseAll() {
109         $("#tb :checkbox").each(function () {
110             //this 代指当前循环的元素,k下标
111             //DOM方法
112 //            if(this.checked){
113 //                this.checked = false
114 //            } else {
115 //                this.checked = true
116 //            }
117 //                jquery方式
118 //                if($(this).prop(‘checked‘)){
119 //                    $(this).prop(‘checked‘,false);
120 //                }else {
121 //                    $(this).prop(‘checked‘,true)
122 //                }
123 //                三元运算 var v = 条件? 真值:假值  的方式实现
124             var v = $(this).prop(‘checked‘) ? false : true;
125             $(this).prop(‘checked‘, v);
126         })
127     }
128
129     function addModel() {
130         $(‘.cover, .modal‘).removeClass(‘hide‘);
131     }
132
133     function cancelModel() {
134         $(‘.cover, .modal‘).addClass(‘hide‘);
135         $(‘.modal input[type="text"]‘).val("")
136     }
137
138     $(‘.edit‘).click(function () {
139         $(‘.cover, .modal‘).removeClass(‘hide‘);
140         var tds = $(this).parent().prevUntil(‘.check‘);
141 //        var port = $(tds[0]).text();
142 //        var ip = $(tds[1]).text();
143 //        $(‘.modal input[name="ip"]‘).val(ip);
144 //        $(‘.modal input[name="port"]‘).val(port);
145         console.log(tds);
146         tds.each(function(){
147             var attr = $(this).attr(‘target‘);
148             var text = $(this).text();
149             console.log(attr,text);
150             $(‘.modal input[name="‘+ attr + ‘"]‘).val(text);
151
152         })
153     });
154     $(‘.del‘).click(function() {
155         $(this).parent().remove()
156     });
157     function confirmModel() {
158         var tr = document.createElement(‘tr‘);
159         var td1 = document.createElement(‘td‘);
160         td1.innerHTML = ‘1.1.1.1‘;
161         var td2 = document.createElement(‘td‘);
162         td2.innerHTML = ‘23‘;
163         var td3 = document.createElement(‘td‘);
164         var td3_check = document.createElement(‘checkbox‘);
165         $(td3).append(td3_check);
166         $(tr).append(td3);
167         $(tr).append(td1);
168         $(tr).append(td2);
169         $(‘#tb‘).append(tr);
170         $(‘.cover, .modal‘).addClass(‘hide‘);
171
172     }
173 </script>
174 </body>
175 </html>

注意一下,这一次编辑是抓取文本内容赋值给text框的jquery语句

实例五、标签菜单栏

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .header{
 8             width:100%;
 9             height: 50px;
10             background-color: #073763;
11         }
12         .menu{
13             margin: 0 auto;
14             background-color: #6e6568;
15             width: 400px;
16             height:50px;
17             border: 1px solid blueviolet;
18         }
19         .menu .menu-item{
20             line-height: 49px;
21             float: left;
22             border: 1px solid dimgrey;
23             cursor: pointer;
24             padding:0 10px;
25         }
26         .content{
27             margin:0 auto;
28             width: 400px;
29             border: 1px solid saddlebrown;
30             height: 500px;
31         }
32         .active{
33             background-color: mediumseagreen;
34         }
35         .hide{
36             display: none;
37         }
38     </style>
39 </head>
40 <body style="margin: 0px;">
41     <div class=" header"></div>
42     <div class="menu">
43         <div class="menu-item active" a="1">菜单一</div>
44         <div class="menu-item" a="2">菜单二</div>
45         <div class="menu-item" a="3">菜单三</div>
46         <div style="clear:both;"></div>
47     </div>
48     <div class="content">
49         <div b="1">内容一</div>
50         <div class="hide" b="2">内容二</div>
51         <div class="hide"b="3">内容三</div>
52     </div>
53     <script src="jqueryfile/jquery-3.2.1.js"></script>
54     <script>
55         $(".menu-item").click(function() {
56             $(this).addClass("active").siblings().removeClass("active");
57 //            自定义属性获取
58 //            $(".content").children(‘[b="‘+$(this).attr(‘a‘)+‘"]‘).removeClass("hide").siblings().addClass("hide");
59 //            index获取
60             $(".content").children().eq($(this).index()).removeClass(‘hide‘).siblings().addClass(‘hide‘)
61         })
62     </script>
63 </body>
64 </html>

jquery事件

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <a onclick="clickOn()" href="http://www.baidu.com">走你</a>
 9     <script>
10         function clickOn() {
11             alert(123);
12         }
13     </script>
14     <!--clickon事件先于标签本身的事件执行-->
15     <!--<a onclick="return clickOn()" href="http://www.baidu.com">走你</a>-->
16     <!--<script>-->
17         <!--function clickOn() {-->
18             <!--alert(123);-->
19             <!--return false-->
20         <!--}-->
21     <!--</script>-->
22     <!--如果事件返回 false则不执行本身的事件-->
23 <!--jquery里面也是一样  return false就可以了-->
24 </body>
25 </html>

表单提交

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <form action="s1.html" method="post">
 9         <div><input type="text" /><input type="submit" value="提交" /></div>
10
11     </form>
12 <script src="jqueryfile/jquery-3.2.1.js"></script>
13 <script>
14     $(":submit").click(function() {
15         var v = $(this).prev().val();
16         if(v.length>0){
17             return true;
18         }else {
19             alert("请输入内容");
20             return false
21         }
22     })
23 </script>
24 </body>
25 </html>

表单提交的提示信息

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .error{
 8             color:red;
 9         }
10     </style>
11 </head>
12 <body class="i1">
13     <form action="s1.html" method="post">
14         <div><input type="text" /></div>
15         <div><input type="text" /></div>
16         <div><input type="text" /></div>
17         <div><input type="text" /></div>
18         <div><input type="password" /></div>
19         <div><input type="text" /></div>
20         <input type="submit" value="提交" />
21     </form>
22 <script src="jqueryfile/jquery-3.2.1.js"></script>
23 <script>
24     $(":submit").click(function() {
25         $(".error").remove();
26         var flag = true;
27
28         $(‘form‘).find("input[type=‘text‘],input[type=‘password‘]").each(function() {
29             var v = $(this).val();
30             if(v.length<=0){
31                 flag = false;
32                 var tag = document.createElement(‘span‘);
33                 tag.innerHTML=‘必填‘;
34                 tag.className = "error";
35                 $(this).after(tag);
36             }
37         });
38         return flag
39     });
40
41
42 </script>
43 </body>
44 </html>

点赞效果

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .container{
 8             width: 500px;
 9             height: 50px;
10             border: 1px solid orangered;
11         }
12         .item{
13             position: relative;
14             padding: 10px;
15             width: 30px;
16         }
17     </style>
18 </head>
19 <body>
20     <div class="container">
21         <div class="item">
22             <span>赞</span>
23
24         </div>
25     </div>
26     <div class="container">
27         <div class="item">
28             <span>赞</span>
29         </div>
30     </div>
31     <div class="container">
32         <div class="item">
33             <span>赞</span>
34         </div>
35     </div>
36     <script src="jqueryfile/jquery-3.2.1.js"></script>
37     <script>
38         $(".item").click(function() {
39             addFavor(this)
40         })
41         function addFavor(self) {
42             var tag = document.createElement("span");
43             var fontsize = 10;
44             var top = 10;
45             var right = 6;
46             var opacity = 1;
47             $(tag).text("+1");
48             $(tag).css("color",‘grey‘);
49             $(tag).css("position",‘absolute‘);
50             $(tag).css("fontSize",fontsize+"px");
51             $(tag).css("right",right+"px");
52             $(tag).css("top",top+"px");
53             $(tag).css("opacity",opacity);
54             $(self).append(tag);
55
56             var obj = setInterval(function() {
57                 fontsize = fontsize +5;
58                 top = top - 7;
59                 right = right -7;
60                 opacity = opacity -0.15;
61                 $(tag).css("fontSize",fontsize+"px");
62                 $(tag).css("right",right+"px");
63                 $(tag).css("top",top+"px");
64                 $(tag).css("opacity",opacity);
65
66                 if (opacity < 0){
67                     clearInterval(obj);
68                     $(tag).remove()
69                 }
70             }, 50);
71
72
73         }
74     </script>
75 </body>
76 </html>

时间: 2024-10-11 04:04:06

Python 15 html 基础 jQuery & Javascript研究的相关文章

Python 14 html 基础 - CSS &amp;javascript &amp;DOM

本节内容 CSS基础 javascript基础 DOM 前言,这边这块楼主已经很熟悉了,CSS天天用到,简单的一些javascript也是所以就挑点重点说了.然后就是dom不怎么用,但是其实也用不到,大家以后都会是用jquery来做这一块的需求,所以只要稍作了解就好了. CSS基础 继续上一章节的css. position 常用的三个: fixed  ==>浮动的固定在某个位置 relative + absolute ==> 通常这2个一起用,用来在父标签的内部定位,相对于父标签的一个绝对定位

15天学会jQuery

15 Days of jQuery(Day 0)---JQuery - What, Why, When, Where, Who what jQuery是一个了不起的javascript库,它可以是我们用很少的几句代码就可以创建出漂亮的页面效果.从网站的方面说,这使得javascript更加有趣. 如果你这样想:“孩子,我需要另外一个javascript库,就好比我I need another hole in my head”那么加入这个俱乐部吧.这正是我第一次遇到的时候所想的. 我已经用过了Mo

从零基础入门JavaScript(1)

从零基础入门JavaScript(1) 1.1  Javascript的简史 1995年的时候   由网景公司开发的,当时的名字叫livescript    为了推广自己的livescript,搭了java顺风车,改名为javascript 与此同时,     微软因此在自身的浏览器里,也推出了自己的脚本语言 jscript 1997年时候,  由ECMA(欧洲计算机制造商协会)出面,推出了一套javascript的规范,Ecmascript ,规范提出js由三部分组成 JS的组成: ECMAS

基础典型算法研究:合并有序数组

做leetcode第二题的时候,发现合并有序数组是一个很有意思的问题,于是,总结如下,部分内容来源于网络各位大神. 第一种方法: 合并调用sort. 即是将两个数组合并在一个数组里面,然后对合并后的数组调用sort函数即可. class Solution: def getArray(self, A, B) : for item in B : A.append(item) A.sort() 第二种方法: 极值插入法. #include <stdio.h> void insert(int *arr

玩蛇(Python)笔记之基础Part3

玩蛇(Python)笔记之基础Part1 一.集合 1.set 无序,不重复序列 {}创建,直接写元素 2.set功能 __init__()构造方法,,使用强制转换就会调用此方法 1 set1 = {'year', 'jiujiujiu'} 2 print(type(set1)) 3 # 创建集合 4 s = set() # 创建空集合 5 li = [11, 22, 11, 22] 6 s = set(li) set 3.集合的基本操作 1 # 操作集合 2 s1 = set() 3 s1.a

玩蛇(Python)笔记之基础Part2

玩蛇(Python)笔记之基础Part2 一.列表 1.列表 别的语言叫数组 python牛逼非要取个不一样的名字 1 age = 23 2 name = ["biubiubiu", "jiujiujiu", 22, age] 3 # namecopy = name 4 # namecopy.pop() 5 print(name) 6 # print(namecopy) List 2.列表取值 正常index 从零开始,,取倒数加负号 倒数第一就是[-1] 3.列表

利用Python进行数据分析 基础系列随笔汇总

一共 15 篇随笔,主要是为了记录数据分析过程中的一些小 demo,分享给其他需要的网友,更为了方便以后自己查看,15 篇随笔,每篇内容基本都是以一句说明加一段代码的方式, 保持简单小巧,看起来也清晰 ,一共可以划分为三个大部分: 第一部分简单介绍数据分析,以一个小例子简单说明了什么是数据分析和 IPython 工具: 第二部分是 NumPy 的基础使用,NumPy 是 Python 包,提供科学计算功能,主要是 ndarray 数组对象: 第三部分是 pandas 的基础使用,主要是 Seri

[转]python与numpy基础

来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb python与numpy基础 寒小阳(2016年6月) Python介绍 如果你问我没有编程基础,想学习一门语言,我一定会首推给你Python类似伪代码的书写方式,让你能够集中精力去解决问题,而不是花费大量的时间在开发和debug上同时得益于Numpy/Scipy这样的科学计算库,使得其有非常高效

Python核心编程基础教程之Python运算符、运算符优先级、表达式简介--20150717

Python核心编程基础教程之Python运算符.运算符优先级.表达式简介 1.Python运算符与表达式: (1)认识Pyhton运算符1:什么是运算符 在Python运算中,有时候我们需要对一个或者多个数字或者一个或者多个字符串进行运算操作,*,+ (2)认识Pyhton运算符2:运算符有哪些以及运算符的使用方法 + :加 - :减 * :乘 / :除 ** :幂 < :小于 > :大于 != :不等于 // :求相除的整数部分 % :求相除的余数部分 & :按位与 | :按位或