Python之路【第十三篇】:jQuery

1、jQuery和JS和HTML的关系

首先了HTML是实际展示在用户面前的用户可以直接体验到的,JS是操作HTML的他能改变HTML实际展示给用户的效果!

首先了解JS是一门语言,他是运行在浏览器上的。

jQuery是什么呢?他是对JS进行了封装,成了一个类库,就类似于python中的类,我们用的时候直接掉类库了就行了非常方便。比如paramiko模块,我们要使用paramiko就得学习里面的方法。

2、jQuery分为的几部分

------找

   ----选择器

   ----筛选器

------操作

   ----css

     ----属性

     ----文档

------事件

     ----事件

   ----ajax请求

     ----json

jQuery选择器

1、id选择器-常用

id选择器,通过id去匹配元素:(#号来表示)

html代码:

<div id="notMe"><p>id="notMe"</p></div>
<div id="myDiv">id="myDiv"</div>

jQuery代码:

$("#myDiv");

注:jQuery代码中的$可以理解为他就是jQuery,举例来说在们在学习python中导入了一个模块json咱们在用的时候是json.什么概念是一样的

结果:

<div id="myDiv">id="myDiv"</div>

如果id名中有特殊的符号,在特殊符号前面加上\\即可

2、元素名(标签)选择器-常用

根据指定的元素名(标签),去匹配元素。例如<div>标签、<a>标签、<p>标签等。。。

html代码:

<div>DIV1</div>
<div>DIV2</div>
<span>SPAN</span>

jQuery代码:

$("div");

结果:(匹配所有的div标签)

[ <div>DIV1</div>, <div>DIV2</div> ]

3、指定类(指定样式类)选择器-常用

根据指定的样式类匹配元素

html代码:

<div class="notMe">div class="notMe"</div>
<div class="myClass">div class="myClass"</div>
<span class="myClass">span class="myClass"</span>

jQuery代码:

$(".myClass");

结果:

<div class="myClass">div class="myClass"</div>
<span class="myClass">span class="myClass"</span>

4、所有元素(*),多用于结合上下文来搜索。

html代码:

<div>DIV</div>
<span>SPAN</span>
<p>P</p>

jQuery代码:

$("*")

结果:

<div>DIV</div>
<span>SPAN</span>
<p>P</p>

5、关联选择器(比如某个元素下的一个和多个元素匹配)

html代码:

    <div id="t1">
        <div>
            <a>hello jQuery</a>
            <span></span>
        </div>
    </div>

jQuery代码:

我要找到id=1下面的所有a标签,在()内以空格分割就是谁下面的谁

$(‘#t1 a‘)

结果:

<a>hello jQuery</a>

6、组合选择器(匹配多个元素-常用)

html代码:

<a class="c1"></a>
<div class="c1"></div>
<a></a>
<span></span>

jQuery代码:

$(‘.c1,a‘)

找到html内的class=‘c1’的标签和a标签

结果:

<a class="c1"></a>
<div class="c1"></div>
<a></a>

注:上面这些选择器是最基础的也是最常用的。

7、其他的选择器

这个链接还有其他的选择器的使用,需要都看下:http://www.php100.com/manual/jquery/

8、表单form,input系列

html代码:

<form>
    <input type="button" value="Input Button"/>
    <input type="checkbox" />

    <input type="file" />
    <input type="hidden" />
    <input type="image" />

    <input type="password" />
    <input type="radio" />
    <input type="reset" />

    <input type="submit" />
    <input type="text" />
    <select><option>Option</option></select>

    <textarea></textarea>
    <button>Button</button>

</form>

jQuery代码:

$(‘:input‘)

上面的代码就是找到所有的input的标签

jQuery代码:

$(‘:text‘)

上面的意思是找到所有的input的标签并且type=‘text’,他和$(‘input[type=‘text‘]‘)效果是一样的

jQuery代码:

$(‘:text,password‘)

上面的意思是找到所有的input的标签并且type=‘text‘或type=‘password‘的标签

表单对象属性:

html代码:

    <!--checked="checked" 默认选中-->
    <input type="checkbox" checked="checked"/>
    <input type="checkbox" checked="checked"/>
    <input type="checkbox" />
    <input type="checkbox" />

jQuery代码:

$("input:checked")

找到input标签选中的标签

jQuery筛选器

1、筛选器过滤

1、eq

html代码

<p> This is just a test.</p>
<p> So is this</p>

我要找到index为1的p标签

$("p").eq(1)

效果如下:

<p> So is this</p>

注:有同学会问我用选择器也可以实现类似的效果啊?代码如下:

$(‘p:eq(1)‘)

有什么区别呢?

看下面的例子:

例子1:
innp = raw_input()
$(‘p‘).eq(innp)

例子2:
innp = raw_input()
content = "p:eq(" + innp + ")"

这里第二个例子中他是字符串,他不能直接传参数,那么jQuery的筛选器相当于对选择器进行了一些封装。

2、hasClass 判断是否有相应的样式并返回True或者False

html代码:

<div id=‘l1‘ class="protected"></div>
<div id=‘l2‘></div>

jQuery代码:

var result = $(‘#l1‘).hasClass(‘protected‘)
result = true

var result = $(‘#l2‘).hasClass(‘protected‘)
result = false

3、map

html代码:

    <table>
        <thead></thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>2</td>
                <td>3</td>
                <td onclick="get_prev(this)">编辑</td>
            </tr>
        </tbody>
    </table>

jQuery代码:

        function get_prev(arg){
            //$(arg).sibling() 当前标签的所有标签
            var list = $(arg).siblings().map(function () {
                //map和python中的map类似,循环每个标签并做好相应的操作
                //每一个标签被循环时,都会执行map里面的函数
                //将所有的结果封装到一个数组中(列表)
                return $(this).text();
                //返回列表
            });
            console.log(list[0],list[1],list[2])
        }

实例:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>shuaige</title>
 6 </head>
 7 <body>
 8     <table>
 9         <thead></thead>
10         <tbody>
11             <tr>
12                 <td>1</td>
13                 <td>2</td>
14                 <td>3</td>
15                 <td onclick="get_prev(this)">编辑</td>
16             </tr>
17         </tbody>
18     </table>
19     <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
20     <script type="text/javascript">
21         function get_prev(arg){
22             //$(arg).sibling() 当前标签的所有标签
23             var list = $(arg).siblings().map(function () {
24                 //map和python中的map类似,循环每个标签并做好相应的操作
25                 //每一个标签被循环时,都会执行map里面的函数
26                 //将所有的结果封装到一个数组中(列表)
27                 return $(this).text();
28                 //返回列表
29             });
30             console.log(list[0],list[1],list[2])
31         }
32     </script>
33 </body>
34 </html>

map实例

2、查找

在上面我们已经用过了,看下面的实例:

我们使用到了:

parent().siblings().find(‘.content‘)

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>shuaige</title>
 6     <style>
 7         .content{
 8
 9         }
10         .hide{
11             display: none;
12         }
13     </style>
14 </head>
15 <body>
16     <div>
17         <div onclick="change(this)" id="m1">菜单一</div>
18             <div class="content">
19                 <div>1</div>
20                 <div>2</div>
21                 <div>3</div>
22             </div>
23     </div>
24     <div>
25         <div onclick="change(this)" id="m2">菜单二</div>
26             <div class="content hide">
27                 <div>1</div>
28                 <div>2</div>
29                 <div>3</div>
30             </div>
31     </div>
32     <div>
33         <div onclick="change(this)" id="m3">菜单三</div>
34             <div class="content hide">
35                 <div>1</div>
36                 <div>2</div>
37                 <div>3</div>
38             </div>
39
40     </div>
41     <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
42     <script type="text/javascript">
43         function change(arg) {
44             //一 找到下一个标签,移除hide样式
45             //$(arg).next()  下一个标签
46             //removeClass(‘‘) 移除样式
47             $(arg).next().removeClass(‘hide‘);
48             //二 找到其他菜单,内容隐藏,添加hide
49             //当前标签的父亲标签$(arg).parent()
50             //所有父亲标签的兄弟标签
51             $(arg).parent().siblings().find(‘.content‘).addClass(‘hide‘);
52         }
53
54     </script>
55 </body>
56 </html>

实例

1、children

取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。

html代码如下:

    <p onclick="print()">Hello</p>
    <div>
        <span>Hello Again</span>
        <div>
            <span>hello shuaige</span>
        </div>
    </div>
    <p>And Again</p>

jQuery代码:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>shuaige</title>
 6     <style>
 7         .content{
 8
 9         }
10         .hide{
11             display:none;
12         }
13         .color_add{
14             background-color: red;
15         }
16     </style>
17 </head>
18 <body>
19     <p onclick="print()">Hello</p>
20     <div>
21         <span>Hello Again</span>
22         <div>
23             <span>hello shuaige</span>
24         </div>
25     </div>
26     <p>And Again</p>
27
28
29     <script type="text/javascript" src="../js/jquery-1.8.2.min.js"></script>
30     <script>
31         function print() {
32             $(‘div‘).children().addClass(‘color_add‘);
33         }
34     </script>
35 </body>
36 </html>

children

2、find

搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法。(去子子孙孙去找)

html代码:

    <p>
        <span>Hello</span>
        , how are you?
    </p> 

jQuery代码:

$(‘p‘).find(‘span‘)

结果:

<span>Hello</span>

3、next、nextAll、nextUntil

next()同级别下的下一个标签、nextAll同级别下的当前标签下面的所有标签、nextUntil同级别下到那个一个标签为为止

这里只写nextUntil

html代码:

    <dl>
      <dt id="term-1">term 1</dt>
      <dd>definition 1-a</dd>
      <dd>definition 1-b</dd>
      <dd>definition 1-c</dd>
      <dd>definition 1-d</dd>

      <dt id="term-2">term 2</dt>
      <dd>definition 2-a</dd>
      <dd>definition 2-b</dd>
      <dd>definition 2-c</dd>

      <dt id="term-3">term 3</dt>
      <dd>definition 3-a</dd>
      <dd>definition 3-b</dd>
    </dl>

jQuery代码:

        $(‘#term-1‘).nextUntil(‘#term-2‘).css(‘color‘,‘green‘);
        $(‘#term-2‘).nextUntil(‘#term-3‘).css(‘backgroundColor‘,‘red‘);

显示效果如下:

4、prev、prevale、prevUntil 这里不在做举例,上面的next是往下,这个prev就是往上找

5、parent()、parents()、parents

取得一个包含着所有匹配元素的唯一父元素的元素集合。

html代码如下:

        <div>
            <p>Hello</p>
            <p>Hello</p>
        </div>
        <div>
            <div>shuaige</div>
        </div>

jQuery代码:

        $(‘p‘).parent().css(‘background-color‘,‘red‘)

效果图如下:

6、串联

6.1、and(个人理解就相当于同事匹配两种规则任意规则生效即可执行后面的function)

    <p>Hello</p>
    <span>Hello Again</span>

jQuery代码:

$(‘#m1‘).add(‘span‘).css(‘backgroundColor‘,‘red‘)

效果图如下:

6.2、andSelf() 对之前进行筛选的的标签也进行操作

html代码&实例

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>shuaige</title>
 6     <style>
 7         .content{
 8
 9         }
10         .hide{
11             display:none;
12         }
13         .border{
14             background-color: red;
15         }
16     </style>
17 </head>
18 <body>
19     <div>
20         <p>First Paragraph</p>
21         <p>Second Paragraph</p>
22     </div>
23
24     <script type="text/javascript" src="../js/jquery-1.8.2.min.js"></script>
25     <script>
26         $("div").find("p").andSelf().addClass("border");
27     </script>
28 </body>
29 </html>

代码

看jQuery代码:

 $("div").find("p").andSelf().addClass("border");

如果不加andSelf(),默认指挥给他下面的p标签进行增加class类,如果加上之后就会对div这个查询条件也进行了增加

效果图如下:

    <div class="border">
        <p class="border">First Paragraph</p>
        <p class="border">Second Paragraph</p>
    </div>

jQuery实例

1、左侧菜单实例(博客后会跟上一个完整一个cmdb的后台例子)

1.1、首先写出框架来

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>shuaige</title>
 6 </head>
 7 <body>
 8     <div>
 9         <div>
10             <div>菜单一</div>
11             <div>
12                 <div>1</div>
13                 <div>2</div>
14                 <div>3</div>
15             </div>
16         </div>
17
18         <div>
19             <div>菜单二</div>
20             <div>
21                 <div>1</div>
22                 <div>2</div>
23                 <div>3</div>
24             </div>
25         </div>
26         <div>
27             <div>菜单三</div>
28             <div>
29                 <div>1</div>
30                 <div>2</div>
31                 <div>3</div>
32             </div>
33         </div>
34
35     </div>
36
37     <script type="text/javascript" src="../js/jquery-1.8.2.min.js"></script>
38     <script>
39
40     </script>
41 </body>
42 </html>

html-框架

2.2、整理要求

要求:

当点击其中一个标签的时候,显示其标签内的内容,并且隐藏其他标签内容。所以每个标签上肯定都有一个onclick事件。

并且默认第一个菜单默认是显示的其他两个菜单是隐藏的那么就会用到“display:none;”这个参数。

那么3个菜单通过什么来判断我点击的是哪一个呢?“传参”

下面的代码先看逻辑,可以优化:(点击菜单然后在console输出选择的具体菜单项)

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>shuaige</title>
 6     <style>
 7         .hide{
 8             display: none;
 9         }
10     </style>
11 </head>
12 <body>
13     <div>
14         <div onclick="change(1)" id="m1">菜单一</div>
15         <div>
16             <div>1</div>
17             <div>2</div>
18             <div>3</div>
19         </div>
20
21         <div onclick="change(2)" id="m2">菜单二</div>
22         <div class="hide">
23             <div>1</div>
24             <div>2</div>
25             <div>3</div>
26         </div>
27
28         <div onclick="change(3)" id="m3">菜单三</div>
29         <div class="hide">
30             <div>1</div>
31             <div>2</div>
32             <div>3</div>
33         </div>
34
35     </div>
36     <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
37     <script type="text/javascript">
38         function change(arg) {
39             //找到,到底点击那一个,通过传参,来判断!
40             if(arg == 1){
41                 var menu = $(‘#m1‘); //通过传过来的参数,去查找对应的id
42             }else if (arg == 2) {
43                 var menu = $(‘#m2‘); //通过传过来的参数,去查找对应的id
44             }else{
45                 var menu =$(‘#m3‘); //通过传过来的参数,去查找对应的id
46             }
47
48             console.log(menu.text());
49         }
50
51     </script>
52 </body>
53 </html>

左侧菜单_例子

效果如下:(点击在console显示点击的为哪个一个菜单)

2.3、上面的左侧菜单在写的时候如果有很多个菜单难道每次都要用if...else判断吗?

修改什么呢?看下面的代码:

在菜单哪里传参数的时候给他写一个特殊的参数:‘this‘这个就表示当前标签,并且js哪里也要修改,$(arg)给arg加上$()就表示给其封装成jQuery的选择器了:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>shuaige</title>
 6     <style>
 7         .hide {
 8             display:none;
 9         }
10     </style>
11 </head>
12 <body>
13     <div>
14         <div>
15             <div id="m1" onclick="change(this)">菜单一</div>
16             <div>
17                 <div>1</div>
18                 <div>2</div>
19                 <div>3</div>
20             </div>
21         </div>
22
23         <div>
24             <div id="m2" onclick="change(this)">菜单二</div>
25             <div class="hide" >
26                 <div>1</div>
27                 <div>2</div>
28                 <div>3</div>
29             </div>
30         </div>
31         <div>
32             <div id="m3" onclick="change(this)">菜单三</div>
33             <div class="hide" >
34                 <div>1</div>
35                 <div>2</div>
36                 <div>3</div>
37             </div>
38         </div>
39
40     </div>
41
42     <script type="text/javascript" src="../js/jquery-1.8.2.min.js"></script>
43     <script>
44             function change(arg) {
45                 var t = $(arg).text();  //这个$(arg)就表示你点击的是哪个一个菜单
46                 console.log(t)
47             }
48     </script>
49 </body>
50 </html>

左侧菜单_优化

2.4、做到上面一步之后我们就需要做下面的两步

2.4.1 找到下一个标签hide样式

2.4.2 找到其他标签的内容用并隐藏(增加hide样式)

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>shuaige</title>
 6     <style>
 7         .content{
 8
 9         }
10         .hide{
11             display: none;
12         }
13     </style>
14 </head>
15 <body>
16     <div>
17         <div onclick="change(this)" id="m1">菜单一</div>
18             <div class="content">
19                 <div>1</div>
20                 <div>2</div>
21                 <div>3</div>
22             </div>
23     </div>
24     <div>
25         <div onclick="change(this)" id="m2">菜单二</div>
26             <div class="content hide">
27                 <div>1</div>
28                 <div>2</div>
29                 <div>3</div>
30             </div>
31     </div>
32     <div>
33         <div onclick="change(this)" id="m3">菜单三</div>
34             <div class="content hide">
35                 <div>1</div>
36                 <div>2</div>
37                 <div>3</div>
38             </div>
39
40     </div>
41     <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
42     <script type="text/javascript">
43         function change(arg) {
44             //一 找到下一个标签,移除hide样式
45             //$(arg).next()  下一个标签
46             //removeClass(‘‘) 移除样式
47             $(arg).next().removeClass(‘hide‘);
48             //二 找到其他菜单,内容隐藏,添加hide
49             //当前标签的父亲标签$(arg).parent()
50             //所有父亲标签的兄弟标签
51             $(arg).parent().siblings().find(‘.content‘).addClass(‘hide‘);
52         }
53
54     </script>
55 </body>
56 </html>

左侧菜单实例-内带注释

2、弹框(模态对话框)修改实例(博客后会跟上一个完整一个cmdb的后台例子)

要求:

1、点击编辑的时候弹出一个对话框,在对话框内进行修改。

2、并判断内容是否为空,提示并增加颜色。

原生html内容

    <table>
        <thead></thead>
        <tbody>
            <tr>
                <td>www.youku.com</td>
                <td>1.1.1.1</td>
                <td>8080</td>
                <td onclick="GetPrev(this)">编辑</td>
            </tr>
            <tr>
                <td>www.baidu.com</td>
                <td>2.2.2.2</td>
                <td>8080</td>
                <td onclick="GetPrev(this)">编辑</td>
            </tr>
            <tr>
                <td>www.sina.com</td>
                <td>3.3.3.3</td>
                <td>8080</td>
                <td onclick="GetPrev(this)">编辑</td>
            </tr>
        </tbody>

第一步上面注册了onclick事件,当我们点击的时候出发,显示一个弹出框他本身就是存在的只是隐藏了,所以我们需要一个弹出框

这个弹出框可以修改可以提交数据至后台所以应该是一个form表单,这个先不管先来实现这个:弹出效果

第二步:

style样式:

    <style>
        /*模态对话框样式*/
        .modal{
            position: fixed;
            left:50%;
            top:50%;
            width: 400px;
            height: 300px;
            background-color: #dddddd;
            margin-left: -200px;
            margin-top: -150px;
        }
        .hide{
            display: none;
        }
    </style>

在定义一个div应用样式

    <div id="dialog" class="modal hide">
        <form action="" method="get">
                <p> hostname:<input /></p>
                <p> hostipadd:<input /></p>
                <p> hostipport:<input /></p>
            <input type="submit" value="提交"/>
            <input type="button" value="取消"/>
        </form>
    </div>

定义jQuery代码

//        获取用户点击的是哪个一行,并弹出模态对话框
        function GetPrev(arg){
            $(‘#dialog‘).removeClass(‘hide‘)
        }

第二步我们实现了,弹出模态对话框的操作,下面我们要把数据填充到,模态对话框内,首先我们的找到我们点击的的这个标签上面的标签,并且点击取消后隐藏模态对话框。

这里需要注意找到之后,要用到循环,咱们看下下面的循环!

    <script type="text/javascript" src="../js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript">
            //获取用户点击的是哪个一行,并弹出模态对话框
        function GetPrev(arg){
            //获取我们点击的的<td>标签的同级别的的数据用什么?$(arg).prevAll()
            //循环所有的数据,取出每一个数据的内容

            //假设我这里有一个数组,我要对它进行循环.
            var a = [11,22,33,44,55];
            //这里用什么循环呢?在jQuery中
            //$.each()它就是用来循环的,我们吧a这个数组传进去,然后在括号内增加function,数组中的每个元素就会循环执行()内定义的function
            $.each(a,function (i) {console.log(a[i])});//这里看一下,这个i是怎么来的呢?这个i就类似和python中的循环类似.
            //看下面的python代码:
            //=================
            //for i in a :
            //    print i
            //=================
            //还有就是,通过each()我很循环的时候这个i,是当前数组的"索引"(这里和python中不同)
            //所以要获取内容的时候a[i]就是获取当前的内容
        }
    </script>

现在我们循环他然后通过ID找到对应的input的标签然后把值付给他。

        //当点击时从form表单中的input标签中获取内容并赋值给模态对话框
        function GetPrev(arg){
            var list = [];
            $.each($(arg).prevAll(),function(i) {  //循环$(arg).prevAll()这里的内容,然后把值赋值给 i 这里的function(i)
                var item = $(arg).prevAll()[i]; //获取值,如果不取获取到的是索引
                var text = $(item).text(); //取出值然后赋值给text
                list.push(text)
            });
            //反转列表
            var new_list = list.reverse();
            //把获取到的值引用到模态对话框中,赋值给value
            $(‘#hostname‘).val(new_list[0]);
            $(‘#ip‘).val(new_list[1]);
            $(‘#port‘).val(new_list[2]);

            $(‘#dialog‘).removeClass(‘hide‘);
        }

上面的添加完成之后再加一个当用户点击提交的时候判断用户输入的是否正确。如果不正确提示,代码如下:

        //当点击时判断用户输入的内容是否为空,如果为空提示
        function SubmitForm(){
            //获取form表单中input的值
            //判断值是否为空
            var ret = true;
            //遍历所有的input,要要有控制,就讲ret设置为false
            //$(‘input[type="text"]‘) 找到所有的input标签并且类型为text的标签

            $(‘:text‘).each(function () { //找到所有的input标签并且类型为text的标签,找到的是个数组,吧数组赋值给each让他循环
                //$(this) == 要循环的每一个元素表示当前的元素or标签
                var value = $(this).val();
                if(value.trim().length == 0) { //判断取消空格"trim()",之后的字符长度为0,那么执行  注意 == 才是等于 = 是赋值!
                    $(this).css(‘border-color‘,‘red‘);
                    ret = false;
                }else {
                    $(this).css(‘border-color‘, ‘green‘);
                }
                });

            return ret;
        }

这里需要注意下,在标签注册事件的时候需要添加一个事件,如果事件出现问题返回的是false的时候submit其实也是个事件,当咱们自己定义的事件返回为false的时候submit这个事件奖不会被触发。

<input type="submit"  onclick="return SubmitForm()" value="提交"/>

最后在增加一个取消的,看下总体的代码如下:

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>shuaige</title>
  6     <style>
  7         /*模态对话框样式*/
  8         .modal{
  9             position: fixed;
 10             left:50%;
 11             top:50%;
 12             width: 400px;
 13             height: 300px;
 14             background-color: #dddddd;
 15             margin-left: -200px;
 16             margin-top: -150px;
 17         }
 18         .hide{
 19             display: none;
 20         }
 21     </style>
 22
 23 </head>
 24 <body>
 25     <table>
 26         <thead></thead>
 27         <tbody>
 28             <tr>
 29                 <td>1</td>
 30                 <td>2</td>
 31                 <td>3</td>
 32                 <td onclick="GetPrev(this)">编辑</td>
 33             </tr>
 34             <tr>
 35                 <td>111</td>
 36                 <td>211</td>
 37                 <td>333</td>
 38                 <td onclick="GetPrev(this)">编辑</td>
 39             </tr>
 40             <tr>
 41                 <td>11111</td>
 42                 <td>22222</td>
 43                 <td>33333</td>
 44                 <td onclick="GetPrev(this)">编辑</td>
 45             </tr>
 46         </tbody>
 47     </table>
 48     <div id="dialog" class="modal hide">
 49         <form action="" method="get">
 50             <p>主机名:<input type="text" id="hostname"/></p>
 51             <p>ip地址:<input type="text" id="ip"/></p>
 52             <p>主机名:<input type="text" id="port"/></p>
 53
 54             <!--这里的input,本身有一个事件,我们在给他设置一个事件,并且给他返回值,如果咱们定义的事件返回值为Flase他本身自带的事件就不执行了!-->
 55             <!--就不提交了-->
 56             <input type="submit"  onclick="return SubmitForm()" value="提交"/>
 57             <input type="button" onclick="CanCel()" value="取消"/>
 58         </form>
 59     </div>
 60     <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
 61     <script type="text/javascript">
 62         //当点击时判断用户输入的内容是否为空,如果为空提示
 63         function SubmitForm(){
 64             //获取form表单中input的值
 65             //判断值是否为空
 66             var ret = true;
 67             //遍历所有的input,要要有控制,就讲ret设置为false
 68             //$(‘input[type="text"]‘) 找到所有的input标签并且类型为text的标签
 69
 70             $(‘:text‘).each(function () { //找到所有的input标签并且类型为text的标签,找到的是个数组,吧数组赋值给each让他循环
 71                 //$(this) == 要循环的每一个元素表示当前的元素or标签
 72                 var value = $(this).val();
 73                 if(value.trim().length == 0) { //判断取消空格"trim()",之后的字符长度为0,那么执行  注意 == 才是等于 = 是赋值!
 74                     $(this).css(‘border-color‘,‘red‘);
 75                     ret = false;
 76                 }else {
 77                     $(this).css(‘border-color‘, ‘green‘);
 78                 }
 79                 });
 80
 81             return ret;
 82         }
 83
 84         //当点击时从form表单中的input标签中获取内容并赋值给模态对话框
 85         function GetPrev(arg){
 86             var list = [];
 87             $.each($(arg).prevAll(),function(i) {  //循环$(arg).prevAll()这里的内容,然后把值赋值给 i 这里的function(i)
 88                 var item = $(arg).prevAll()[i]; //获取值,如果不取获取到的是索引
 89                 var text = $(item).text(); //取出值然后赋值给text
 90                 list.push(text)
 91             });
 92             //反转列表
 93             var new_list = list.reverse();
 94             //把获取到的值引用到模态对话框中,赋值给value
 95             $(‘#hostname‘).val(new_list[0]);
 96             $(‘#ip‘).val(new_list[1]);
 97             $(‘#port‘).val(new_list[2]);
 98
 99             $(‘#dialog‘).removeClass(‘hide‘);
100         }
101
102         //取消的操作,隐藏模态对话框
103         function CanCel() {
104             $(‘#dialog‘).addClass(‘hide‘)
105         }
106     </script>
107 </body>
108 </html>

弹出模态对话框实例-附注释

3、全选反选实例-(后台会跟上一个完整的实例)

html代码:

首先先把注册事件写上,然后在把主题的框架写好

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <input type="button"  onclick="CheckAll()" value="全选"/>
    <input type="button"  onclick="CheckCancel()" value="取消"/>
    <input type="button"  onclick="CheckReverse()" value="反选"/>

    <table border="1">
        <thead></thead>
        <tbody id="tb1">
            <tr>
                <td>
                    <input type="checkbox" />
                </td>
                <td>
                    1
                </td>
            </tr>
            <tr>
                <td>
                    <input type="checkbox" />
                </td>
                <td>
                    2
                </td>
            </tr>
            <tr>
                <td>
                    <input type="checkbox" />
                </td>
                <td>
                    3
                </td>
            </tr>
        </tbody>

    </table>
    <script type="text/javascript" src="../js/jquery-1.8.2.min.js"></script>
    <script>
        function CheckAll(){

        }
        function CheckCancel(){

        }
        function CheckReverse(){

        }
    </script>

</body>
</html>

先看全选:

        //全选
        function CheckAll() {
            //$(‘#tb1‘).find(‘:checkbox‘).attr(‘checked‘,‘checked‘); 这个方法也是可以的!通过属性修改,但是反选的时候有问题
            $(‘#tb1‘).find(‘:checkbox‘).prop(‘checked‘,true); //这个方法prop是专门为checkbox 而生的
        }

在看取消:

        //取消
        function CheckCancel() {
            //取消也可以用attr来做
            //$(‘#tb1‘).find(‘:checkbox‘).removeAttr(‘checked‘)
            $(‘#tb1‘).find(‘:checkbox‘).prop(‘checked‘,false)
        }

在看反选:

        //反选
        function CheckReverse() {
            //找到/然后判断如果选中就给取消,如果没有选中就给选中
            $(‘#tb1‘).find(‘:checkbox‘).each(function () {
                //this 每一个复选框
                //$(this).prop()  如果选中为True,如果未选中为false;
                if($(this).prop(‘checked‘)){
                    $(this).prop(‘checked‘,false)
                }else{
                    $(this).prop(‘checked‘,true)
                }
            })
        }

上面的代码中   这个prop是专门为checkbox和而生的,当prop的checked属性为true的时候为选中,为false的时候为未选中。

实例代码如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>shuaige</title>
 6 </head>
 7 <body>
 8
 9     <input type="button"  onclick="CheckAll()" value="全选"/>
10     <input type="button"  onclick="CheckCancel()" value="取消"/>
11     <input type="button"  onclick="CheckReverse()" value="反选"/>
12
13     <table border="1">
14         <thead></thead>
15         <tbody id="tb1">
16             <tr>
17                 <td>
18                     <input type="checkbox" />
19                 </td>
20                 <td>
21                 </td>
22             </tr>
23             <tr>
24                 <td>
25                     <input type="checkbox" />
26                 </td>
27                 <td>
28                 </td>
29             </tr>
30             <tr>
31                 <td>
32                     <input type="checkbox" />
33                 </td>
34                 <td>
35                 </td>
36             </tr>
37         </tbody>
38
39     </table>
40
41
42
43     <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
44     <script type="text/javascript">
45         //全选
46         function CheckAll() {
47             //$(‘#tb1‘).find(‘:checkbox‘).attr(‘checked‘,‘checked‘); 这个方法也是可以的!通过属性修改,但是反选的时候有问题
48             $(‘#tb1‘).find(‘:checkbox‘).prop(‘checked‘,true); //这个方法prop是专门为checkbox 而生的
49         }
50
51         //反选
52         function CheckReverse() {
53             //找到/然后判断如果选中就给取消,如果没有选中就给选中
54             $(‘#tb1‘).find(‘:checkbox‘).each(function () {
55                 //this 每一个复选框
56                 //$(this).prop()  如果选中为True,如果未选中为false;
57                 if($(this).prop(‘checked‘)){
58                     $(this).prop(‘checked‘,false)
59                 }else{
60                     $(this).prop(‘checked‘,true)
61                 }
62             })
63         }
64
65         //取消
66         function CheckCancel() {
67             //取消也可以用attr来做
68             //$(‘#tb1‘).find(‘:checkbox‘).removeAttr(‘checked‘)
69             $(‘#tb1‘).find(‘:checkbox‘).prop(‘checked‘,false)
70         }
71     </script>
72
73 </body>
74 </html>

全选-取消-反选-实例

CMDB实例:

html代码:

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>心弦运维CMDB管理系统</title>
  6     <!--导入css样式-->
  7     <link rel="stylesheet" href="css/cmdb.css">
  8     <!--导入头部图片样式-->
  9     <link rel="shortcut icon" href="images/cmdb_heand_image.jpeg">
 10 </head>
 11 <body style="margin:0 auto">
 12     <!--定义网页顶部    -->
 13     <div class="top top_frame">
 14
 15         <div class="top_info">
 16             <h2>运维CMDB系统</h2>
 17         </div>
 18
 19     </div>
 20
 21     <!--定义主题内容框架-->
 22     <div class="page_body">
 23         <!--定义左侧菜单栏框架-->
 24         <div class="page_left">
 25             <div>
 26                 <div onclick="MenuChange(this)" class="left_menu">
 27                     搜索实例
 28                     <img class="left_menu_arrowhead" src="images/arrowhead.jpeg">
 29                 </div>
 30                 <div id="choose_select1" onclick="ContentChange(this)" class="left_menu_content">
 31                     <div>
 32                         <img class="left_menu_child_img" src="images/menu_left_chiled_left.png">
 33                         搜索实例展示
 34                     </div>
 35                 </div>
 36             </div>
 37             <div>
 38                 <div onclick="MenuChange(this)" class="left_menu">
 39                     多选实例
 40                     <img class="left_menu_arrowhead" src="images/arrowhead.jpeg">
 41                 </div>
 42                 <div id="choose_select2" onclick="ContentChange(this)" class="left_menu_content hide">
 43                     <div>
 44                         <img class="left_menu_child_img" src="images/menu_left_chiled_left.png">
 45                         多选实例展示
 46                     </div>
 47                 </div>
 48             </div>
 49             <div>
 50                 <div onclick="MenuChange(this)" class="left_menu">
 51                     模态实例
 52                     <img class="left_menu_arrowhead" src="images/arrowhead.jpeg">
 53                 </div>
 54                 <div  id="choose_select3" onclick="ContentChange(this)" class="left_menu_content hide">
 55                     <div>
 56                         <img class="left_menu_child_img" src="images/menu_left_chiled_left.png">
 57                         模态实例展示
 58                     </div>
 59                 </div>
 60             </div>
 61             <div>
 62                 <div onclick="MenuChange(this)" class="left_menu">
 63                     作业实例
 64                     <img class="left_menu_arrowhead" src="images/arrowhead.jpeg">
 65                 </div>
 66                 <div  id="choose_select4" onclick="ContentChange(this)" class="left_menu_content hide">
 67                     <div>
 68                         <img class="left_menu_child_img" src="images/menu_left_chiled_left.png">
 69                         作业实例展示
 70                     </div>
 71                 </div>
 72             </div>
 73         </div>
 74         <!--定义右侧内容框架,里面保存内容-->
 75         <div class="page_right">
 76             <!--搜索实例展示-->
 77             <div>
 78                 <div id="content_1" class="content_master">
 79                     <div style="height: 150px;width:400px;background-color: #eff2f6;">
 80                         <form style="position:absolute;top: 65px;left: 100px;" action="https://www.sogou.com/web?">
 81                             <input id="search" class="font_color" name="query" type="text" value="请输入搜索内容"/>
 82                             <input type="submit" value="搜索"/>
 83                         </form>
 84                     </div>
 85
 86                 </div>
 87             </div>
 88             <!--多选实例展示-->
 89             <div>
 90                 <div id="content_2" class="content_master hide">
 91                     <div style="position:relative;height: 150px;width:400px;background-color: #eff2f6;">
 92                         <div style="position:absolute;top: 20px;left: 120px;">
 93                             <input type="button"  onclick="CheckAll_1()" value="全选"/>
 94                             <input type="button"  onclick="CheckCancel_1()" value="取消"/>
 95                             <input type="button"  onclick="CheckReverse_1()" value="反选"/>
 96
 97                             <table style="position:absolute;left: 30px;" border="1">
 98                                 <thead></thead>
 99                                 <tbody id="tb1">
100                                     <tr>
101                                         <td>
102                                             <input type="checkbox" />
103                                         </td>
104                                         <td>
105                                         </td>
106                                     </tr>
107                                     <tr>
108                                         <td>
109                                             <input type="checkbox" />
110                                         </td>
111                                         <td>
112                                         </td>
113                                     </tr>
114                                     <tr>
115                                         <td>
116                                             <input type="checkbox" />
117                                         </td>
118                                         <td>
119                                         </td>
120                                     </tr>
121                                 </tbody>
122                             </table>
123                         </div>
124
125                     </div>
126                 </div>
127             </div>
128             <!--模态对话框实例-->
129             <div>
130                 <div id="content_3" class="content_master hide">
131                     <div style="position:relative;height: 150px;width:400px;background-color: #eff2f6;">
132                         <table style="position: absolute;top:40px;left: 50px;" border="1">
133                             <thead></thead>
134                             <tbody>
135                                 <tr>
136                                     <td>wwww.baidu.com</td>
137                                     <td>1.1.1.1</td>
138                                     <td>8080</td>
139                                     <td onclick="GetPrev(this)" style="cursor: pointer;">编辑</td>
140                                 </tr>
141                                 <tr>
142                                     <td>www.youku.com</td>
143                                     <td>2.2.2.2</td>
144                                     <td>8080</td>
145                                     <td onclick="GetPrev(this)" style="cursor: pointer;">编辑</td>
146                                 </tr>
147                                 <tr>
148                                     <td>www.shuaige.com</td>
149                                     <td>3.3.3.3</td>
150                                     <td>8080</td>
151                                     <td onclick="GetPrev(this)" style="cursor: pointer;">编辑</td>
152                                 </tr>
153                             </tbody>
154                         </table>
155                         <div id="dialog" class="modal hide">
156                             <form style="margin-top: 70px;margin-left: 90px;" action="" method="get">
157                                 <p>主机名:<input type="text" id="hostname"/></p>
158                                 <p>ip地址:<input type="text" id="ip"/></p>
159                                 <p>主机名:<input type="text" id="port"/></p>
160
161                                 <!--这里的input,本身有一个事件,我们在给他设置一个事件,并且给他返回值,如果咱们定义的事件返回值为Flase他本身自带的事件就不执行了!-->
162                                 <!--就不提交了-->
163                                 <input style="margin-left: 35px;" type="submit"  onclick="return SubmitForm()" value="提交"/>
164                                 <input type="button" onclick="CanCel()" value="取消"/>
165                             </form>
166                         </div>
167                     </div>
168                 </div>
169             </div>
170             <!--作业实例-->
171             <div>
172                 <div id="content_4" class="content_master hide">
173                     <div style="position:relative;height: 350px;width:1000px;background-color: #eff2f6;">
174                         <div style="position: absolute;top: 50px;left: 100px;">
175                                 <input onclick="CheckAll()" type="button" value="全选"/>
176                                 <input onclick="CheckCancel()" type="button" value="取消"/>
177                                 <input onclick="CheckReverse()" type="button" value="反选"/>
178                                 <input id="select"  type="button" value="进入编辑模式"/>
179                                 <input onclick="save_woker()" type="button" value="保存"/>
180
181                                 <table id="cmdb_form" border="1">
182                                     <thead></thead>
183                                     <tbody id="table_list">
184                                         <tr>
185                                             <td>选择</td>
186                                             <td>序号</td>
187                                             <td>IP</td>
188                                             <td>掩码</td>
189                                             <td>网关</td>
190                                         </tr>
191                                         <tr>
192                                             <td><input class="cmdbchose" type="checkbox"/></td>
193                                             <td class="cselect">1</td>
194                                             <td>192.168.0.101</td>
195                                             <td>255.255.255.0</td>
196                                             <td>192.168.0.1</td>
197                                         </tr>
198                                         <tr>
199                                             <td><input class="cmdbchose" type="checkbox"/></td>
200                                             <td class="cselect">2</td>
201                                             <td>192.168.0.101</td>
202                                             <td>255.255.255.0</td>
203                                             <td>192.168.0.1</td>
204                                         </tr>
205                                     </tbody>
206                                 </table>
207                         </div>
208                     </div>
209                 </div>
210             </div>
211         </div>
212     </div>
213
214     <!--导入jQuery文件-->
215     <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
216     <script type="text/javascript" src="js/cmdb.js"></script>
217     <script>
218         //网页文字头,使用跑马灯实例
219         setInterval(‘Run_going()‘,1000);
220
221
222
223     </script>
224 </body>
225 </html>

html代码

CSS代码:

  1 /*========================================定义顶部样式========================================*/
  2 .top{
  3     background-color: #84bdf6;
  4     }
  5 /*定义顶部框架*/
  6 .top_frame {
  7     height: 80px;
  8     position:relative;
  9 }
 10
 11 /*使用关联选择器为使用了top_frame下面的div应用样式*/
 12 .top_frame .top_info {
 13     position: absolute;
 14     top: 10px;
 15     bottom: 10px;
 16     width: 300px;
 17     height: 60px;
 18     margin-left: 50px;
 19     float:left;
 20 }
 21 /*使用关联选择器为使用了top_frame下面的<h1>标签设置样式*/
 22 .top_frame .top_info h2 {
 23     position: absolute;
 24     bottom: 1px;
 25     color: #fcfcfd;
 26 }
 27
 28
 29 /*========================================定义下部分样式========================================*/
 30 /*==============定义左侧样式===========*/
 31 .page_body{
 32     background-color: #f0f2f4;
 33 }
 34 /*定义左侧样式*/
 35 .page_body .page_left{
 36     position:absolute;
 37     top: 80px;
 38     left: 0px;
 39     bottom: 0px;
 40     width:300px;
 41     overflow: auto;
 42     background-color: #f3f5f7;
 43 }
 44
 45
 46 /*定义左侧主菜单栏样式*/
 47 .page_left .left_menu{
 48     background-image: url(../images/menu_background_color.png);
 49     margin-top: 5px;
 50     margin-left: 10px;
 51     cursor: pointer;;
 52 }
 53
 54 /*定义选择点击下啦菜单的小图片样式*/
 55 .left_menu_arrowhead{
 56     margin-right: 10px;
 57     float: right;
 58     height: 15px;
 59     width: 15px;
 60
 61 }
 62
 63 /*定义左侧子菜单栏样式*/
 64 /*增加子div的样式*/
 65 .left_menu_content{
 66     margin-top: 3px;
 67     background-color: #ffffff;
 68     margin-left: 10px;
 69
 70 }
 71
 72 .left_menu_child_img{
 73     margin-left: 10px;
 74     height: 15px;
 75     width: 15px;
 76 }
 77
 78 /*使用关联定义left_menu_content下的div的样式*/
 79 .left_menu_content div{
 80     margin-top: 10px;
 81 }
 82
 83 .hide{
 84     display: none;
 85 }
 86
 87 .left_menu_content_border{
 88     border-left:3px solid blue;
 89 }
 90
 91 /*==============定义右侧样式===========*/
 92 /*定义右侧框架*/
 93 .page_body .page_right{
 94     position: absolute;
 95     top:80px;
 96     bottom:0px;
 97     left:302px;
 98     right:0px;
 99     overflow: auto;
100 }
101
102 /*是搜索框默认样式*/
103
104 /*搜索实例总框体展示样式*/
105 .content_master{
106     position:absolute;
107     top: 200px;
108     left: 250px;
109     /*background-color: red;*/
110 }
111
112 .black{
113     color:red;
114 }
115 /*需要添加搜索框默认字体样色*/
116 .font_color{
117     color: #dde3e9;
118 }
119
120
121
122
123 /*定义弹出框样式*/
124 .modal{
125     position: fixed;
126     left:50%;
127     top:50%;
128     width: 400px;
129     height: 300px;
130     background-color: #dddddd;
131     margin-left: -200px;
132     margin-top: -150px;
133 }
134
135
136 /*定义作业样式*/
137 .cselect{
138 }
139 /*给点击进入编辑模式按钮设置样式*/
140 .select_color{
141     background-color: sandybrown;
142 }
143 .cmdbchose{
144
145 }
146
147 .change_modecolor{
148     background-color:#D3FF93;
149 }

css代码

jQuery代码:

  1 /**
  2  * Created by luotim on 16/2/25.
  3  */
  4
  5
  6 //所有的jQuery的详细注释都在
  7
  8 //网页头,应用跑马灯实例
  9 function Run_going(){
 10     var content = document.title;
 11     var firstChar = content.charAt(0);
 12     var sub = content.substring(1,content.length);
 13     document.title = sub + firstChar;
 14     }
 15
 16 //定义左侧菜单栏,点击隐藏效果
 17 function MenuChange(arg){
 18     //一 找到下一个标签,移除hide样式
 19     //$(arg).next()  下一个标签
 20     //removeClass(‘‘) 移除样式
 21     $(arg).next().removeClass(‘hide‘);
 22     //二 找到其他菜单,内容隐藏,添加hide
 23     //当前标签的父亲标签$(arg).parent()
 24     //所有父亲标签的兄弟标签siblings()
 25     $(arg).parent().siblings().find(‘.left_menu_content‘).addClass(‘hide‘);
 26
 27 }
 28 //定义左侧菜单栏,子菜单栏的进/出效果
 29 $(‘.left_menu_content‘).hover(function () {
 30     //滑进去的操作
 31     $(this).css("background-color","#84bdf6");
 32     $(this).addClass(‘left_menu_content_border‘);
 33 },function () {
 34     //划出后的操作
 35     $(this).css(‘background-color‘,‘#ffffff‘);
 36     $(this).removeClass(‘left_menu_content_border‘)
 37 });
 38
 39
 40 //定义左侧菜单栏,子菜单栏点击,变更右侧内容效果
 41 function ContentChange(arg){
 42     //var value_id = ;
 43     if($(arg).attr(‘id‘) == ‘choose_select1‘){
 44         $(‘#content_1‘).removeClass(‘hide‘);
 45         $(‘#content_1‘).parent().siblings().find(‘.content_master‘).addClass(‘hide‘);
 46     }
 47
 48     if($(arg).attr(‘id‘) == ‘choose_select2‘){
 49         $(‘#content_2‘).removeClass(‘hide‘);
 50         $(‘#content_2‘).parent().siblings().find(‘.content_master‘).addClass(‘hide‘);
 51     }
 52     //var value_id = ;
 53     if($(arg).attr(‘id‘) == ‘choose_select3‘){
 54         $(‘#content_3‘).removeClass(‘hide‘);
 55         $(‘#content_3‘).parent().siblings().find(‘.content_master‘).addClass(‘hide‘);
 56     }
 57
 58     if($(arg).attr(‘id‘) == ‘choose_select4‘){
 59         $(‘#content_4‘).removeClass(‘hide‘);
 60         $(‘#content_4‘).parent().siblings().find(‘.content_master‘).addClass(‘hide‘);
 61     }
 62
 63
 64 }
 65
 66
 67
 68
 69
 70 //定义搜索实例效果
 71 $(‘#search‘).focus(function () {
 72         $(this).val("");
 73         $(this).removeClass(‘font_color‘);//当获得焦点的时候添加addClass样式
 74     }).blur(function () {
 75         if($(this).val() == ‘‘){$(this).val(‘请输入搜索内容‘);$(this).addClass(‘font_color‘)}//失去焦点的时候添加样式和value
 76             });
 77
 78
 79 //定义多选\反选\取消实例
 80 //全选
 81 function CheckAll_1() {
 82     //$(‘#tb1‘).find(‘:checkbox‘).attr(‘checked‘,‘checked‘); 这个方法也是可以的!通过属性修改,但是反选的时候有问题
 83     $(‘#tb1‘).find(‘:checkbox‘).prop(‘checked‘,true); //这个方法prop是专门为checkbox 而生的
 84 }
 85
 86 //反选
 87 function CheckReverse_1() {
 88     //找到/然后判断如果选中就给取消,如果没有选中就给选中
 89     $(‘#tb1‘).find(‘:checkbox‘).each(function () {
 90         //this 每一个复选框
 91         //$(this).prop()  如果选中为True,如果未选中为false;
 92         if($(this).prop(‘checked‘)){
 93             $(this).prop(‘checked‘,false)
 94         }else{
 95             $(this).prop(‘checked‘,true)
 96         }
 97     })
 98 }
 99
100 //取消
101 function CheckCancel_1() {
102     //取消也可以用attr来做
103     //$(‘#tb1‘).find(‘:checkbox‘).removeAttr(‘checked‘)
104     $(‘#tb1‘).find(‘:checkbox‘).prop(‘checked‘,false)
105 }
106
107
108
109
110 //定义模态对话框
111 //当点击时判断用户输入的内容是否为空,如果为空提示
112 function SubmitForm(){
113     //获取form表单中input的值
114     //判断值是否为空
115     var ret = true;
116     //遍历所有的input,要要有控制,就讲ret设置为false
117     //$(‘input[type="text"]‘) 找到所有的input标签并且类型为text的标签
118
119     $(‘:text‘).each(function () { //找到所有的input标签并且类型为text的标签,找到的是个数组,吧数组赋值给each让他循环
120         //$(this) == 要循环的每一个元素表示当前的元素or标签
121         var value = $(this).val();
122         if(value.trim().length == 0) { //判断取消空格"trim()",之后的字符长度为0,那么执行  注意 == 才是等于 = 是赋值!
123             $(this).css(‘border-color‘,‘red‘);
124             ret = false;
125         }else {
126             $(this).css(‘border-color‘, ‘green‘);
127         }
128         });
129
130     return ret;
131 }
132
133 //当点击时从form表单中的input标签中获取内容并赋值给模态对话框
134 function GetPrev(arg){
135     var list = [];
136     $.each($(arg).prevAll(),function(i) {  //循环$(arg).prevAll()这里的内容,然后把值赋值给 i 这里的function(i)
137         var item = $(arg).prevAll()[i]; //获取值,如果不取获取到的是索引
138         var text = $(item).text(); //取出值然后赋值给text
139         list.push(text)
140     });
141     //反转列表
142     var new_list = list.reverse();
143     //把获取到的值引用到模态对话框中,赋值给value
144     $(‘#hostname‘).val(new_list[0]);
145     $(‘#ip‘).val(new_list[1]);
146     $(‘#port‘).val(new_list[2]);
147
148     $(‘#dialog‘).removeClass(‘hide‘);
149 }
150
151 //取消的操作,隐藏模态对话框
152 function CanCel() {
153     $(‘#dialog‘).addClass(‘hide‘)
154 }
155
156
157 //作业js
158 //作业全选
159 function CheckAll() {
160     //$(‘#tb1‘).find(‘:checkbox‘).attr(‘checked‘,‘checked‘); 这个方法也是可以的!通过属性修改,但是反选的时候有问题
161     $(‘#table_list‘).find(‘:checkbox‘).prop(‘checked‘,true); //这个方法prop是专门为checkbox 而生的
162     //找到所有选中的td并循环
163     if($(‘#select‘).attr(‘status‘) == ‘on‘){ //判断编辑模式是否选中,如果选中执行
164         //找到ID为cmdb_form,下面所有选中了的标签下的td标签,但是刨除序列号$(‘#cmdb_form‘).find(‘:checkbox‘).parent().nextAll().not(‘.cselect‘)
165
166         $(‘#table_list‘).find(‘:checkbox‘).parent().nextAll().not(‘.cselect‘).each(function () {
167             //循环取出的每一个td标签,并获取里面的值
168             // 并且判断td标签内的孩子是否为input,如果是什么都不做,如果不是执行修改字符串为input标签
169             if($(this).children().is(‘input‘)){console.log(‘The children type is input so do not running coding‘)}else{
170             var old = $(this).text();
171             //对取出来的值进行拼接
172             var temp ="<input value=‘"+old+"‘>";
173             //然后赋值
174             $(this).html(temp);}
175         })
176
177         }
178 }
179
180 //作业反选
181 function CheckReverse() {
182     //找到input标签为checkbox 然后判断如果选中就给取消,如果没有选中就给选中
183     $(‘#table_list‘).find(‘:checkbox‘).each(function () {
184
185         //首先判断是否为编辑状态
186         if($(‘#select‘).attr(‘status‘) == ‘on‘){
187         //如果为编辑状态
188         if($(this).prop(‘checked‘)){
189             //如果选中了,首先把他的选中状态取消并且,把他的input标签改为字符串类型
190             // 状态给为取消
191             $(this).prop(‘checked‘,false);
192             //把父级别下面的所有input标签改为字符串
193             $(this).parent().nextAll().not(‘.cselect‘).each(function () {
194                 //取出input标签内的内容
195                 var input_info = $(this).children().val();
196                 //并赋值给td标签
197                 $(this).html(input_info);
198             });}else{
199             //如果没有选中,首先把他的状态改为选中,并且把他的字符串赋值给input标签
200             //改为选中
201             $(this).prop(‘checked‘,true);
202             //并把兄父级别下面的字符串赋值给input标签
203             $(this).parent().nextAll().not(‘.cselect‘).each(function () {
204                 //取出他的值来
205                 var old = $(this).text();
206                 //对取出来的值进行拼接
207                 var temp ="<input value=‘"+old+"‘>";
208                 //然后赋值
209                 $(this).html(temp);})
210             }}else{
211             //如果不是编辑状态
212             if($(this).prop(‘checked‘)){
213                 //如果不是编辑状态把选中的给取消
214                 $(this).prop(‘checked‘,false);
215             }else{
216                 //如果不是编辑状态把未选中的给选中
217                 $(this).prop(‘checked‘,true);
218             }}
219         })
220 }
221
222 //作业取消
223 function CheckCancel() {
224     //取消也可以用attr来做
225     //$(‘#tb1‘).find(‘:checkbox‘).removeAttr(‘checked‘)
226     $(‘#table_list‘).find(‘:checkbox‘).prop(‘checked‘,false);
227     //不管是选中,只要点击取消我就去找到所有的td转为input的标签全部转回td标签
228     $(‘#cmdb_form‘).find(‘:checkbox‘).parent().nextAll().not(‘.cselect‘).find(‘:input‘).each(function () {
229         var input_info = $(this).val();
230         $(this).parent().html(input_info);
231     })
232 }
233
234 //编辑按钮功能
235 $(‘#select‘).toggle(
236         //进入编辑模式执行的function
237         function () {
238             $(this).addClass(‘select_color‘);
239             $(this).attr(‘status‘,‘on‘);
240             console.log($(this).attr(‘status‘))
241         },
242         function () {
243             //退出编辑模式执行的function
244             $(this).removeClass(‘select_color‘);//移除按钮上的样式
245             $(this).removeAttr(‘status‘);//删除自定义属性
246             //不管是选中,只要你退出编辑模式我就去找到所有的td转为input的标签全部转回td标签
247             //并判断值是否为空
248             $(‘#cmdb_form‘).find(‘:checkbox‘).parent().nextAll().not(‘.cselect‘).find(‘:input‘).each(function () {
249                 if($(this).val().length == ‘0‘){alert(‘Sorry the value can not be null‘)}else{
250                     var input_info = $(this).val();
251                     $(this).parent().html(input_info);
252                     $(‘.cmdbchose‘).prop(‘checked‘,false)
253                 }
254
255             })}
256 );
257
258 //定义单选功能
259 $(‘.cmdbchose‘).click(function () {
260     //判断是否为编辑模式
261     if($(‘#select‘).attr(‘status‘) == ‘on‘){
262         if($(this).prop(‘checked‘)){
263             //如果被选中了,取消选中并把input标签内的value取出并改为字符串
264             //alert(‘is chose‘)
265             //找到当前父标签的兄弟标签并刨除.cselect类的标签
266             $(this).parent().siblings().not(‘.cselect‘).each(function () {
267                 var old = $(this).text();
268                 //对取出来的值进行拼接
269                 var temp ="<input value=‘"+old+"‘>";
270                 //然后赋值
271                 $(this).html(temp);
272             })
273         }else{
274             //如果没有被选中,选中并把字符串取出来赋值给input标签
275             //alert(‘not be chose‘)
276             //如果没有被选中,找到父亲标签的兄弟标签,并取出里面的input的value并改为字符串
277             $(this).parent().siblings().not(‘.cselect‘).each(function () {
278                 console.log($(this));
279                 var input_info = $(this).children().val();
280                 $(this).html(input_info);
281             })
282     }}
283 });
284
285 //定义作业保存按钮功能
286
287 function save_woker(){
288     //找到input标签为checkbox 然后判断如果选中就给取消,如果没有选中就给选中
289     $(‘#table_list‘).find(‘:checkbox‘).each(function () {
290         //判断是否为编辑状态
291         if($(‘#select‘).attr(‘status‘) == ‘on‘){
292             //判断这个标签是否为选中状态
293             if($(this).prop(‘checked‘)){
294                 //判断值是否空,
295                             //如果为空,报警
296                             //如果不为空然后把input标签的内容写入text,然后取消选中状态
297                 //把父级别下面的所有input标签刨除..cselect标签的所有标签
298                 $(this).parent().nextAll().not(‘.cselect‘).each(function () {
299                     //判断,任意一个值为空都不行
300                     if($(this).children().val().length == ‘0‘){(alert(‘Sorry the value can not be null‘))}else{
301                         //如果值不为空,那么保存
302                         //取出input标签内的内容
303                         var input_info = $(this).children().val();
304                         //并赋值给td标签
305                         $(this).html(input_info);
306                         console.log($(this))
307                     }
308
309                 });
310                 //保存完成之后,取消所有选中项目
311                 $(‘#table_list‘).find(‘:checkbox‘).prop(‘checked‘,false)
312             }
313         }
314     });
315     }

jQuery代码

原文地址:https://www.cnblogs.com/kingo/p/9199614.html

时间: 2024-10-21 05:27:56

Python之路【第十三篇】:jQuery的相关文章

Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memc

Python之路【第二篇】:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进

七日Python之路--第十三天(最后一天)

好久没更新博客了.前几天一个初级博客基本成型,然后想着怎么放到sae上,这事着实给难住了.最后算是基本完成,Django1.6需要自己上传.然后就换成了Django1.5,然后配置好数据库并将数据SQL语句插入进去即可. 博客地址: tiny234.sinaapp.com . 接下来再继续修改下细节部分.再将代码放到github上. 剩下的,开始研究Spider了..... --2014年08月18日20:57:23 梦醒人不见,泪眼映孤灯.   --临江仙   <铁磁铜牙纪晓岚> 七日Pyt

Python之路【第九篇】:Python基础(26)——socket server

socketserver Python之路[第九篇]:Python基础(25)socket模块是单进程的,只能接受一个客户端的连接和请求,只有当该客户端断开的之后才能再接受来自其他客户端的连接和请求.当然我 们也可以通过python的多线程等模块自己写一个可以同时接收多个客户端连接和请求的socket.但是这完全没有必要,因为python标准库已经为 我们内置了一个多线程的socket模块socketserver,我们直接调用就可以了,完全没有必要重复造轮子. 我们只需简单改造一下之前的sock

学习python之路_入门篇A

偶尔经同事的介绍进入了金角大王的博客里,看到大王编写的文章都是关于python编程的,由于自己一直也是做软件测试方面的工作,也一直想往自动化测试方面发展,了解到利用python可以进行自动化测试操作,可以减少人工测试的繁锁操作. 读了python的基础篇了解了python的发展历史及python的基础知识点,就开始跟着课程去编写一些小脚本. 如下面是使用了for循环的语句: 1 for i in range(10): 2 print("*******",i) 3 for j in ra

第二十三篇 jQuery 学习5 添加元素

jQuery 学习5 添加元素 同学们,这节课,使用jQuery动态添加元素,是很关键的一课,一般用在什么地方呢:别人发表一篇文章,你评论楼主的时候,总不能是提交表单,到后台的其他页面处理,然后再刷新回来吧,这样的话,用户体验不好.考虑一下用户的计算机配置不好.网络不好等多个因素,总是刷新页面,会造成等待的时间太长.甚至有的浏览器直接刷新不出来了,那么用户就抓狂了,就对你的产品有怨言. 所以,我们做前端,要实现动态添加,以后再使用ajax这类异步刷新和后台交互就可以了,那么多的不说,我们现在学的

Python之路【第一篇】:Python基础

本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语句 表达式for 循环 break and continue 表达式while 循环 作业需求 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语

Python之路,第一篇:Python入门与基础

第一篇:Python入门与基础 1,什么是python? Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 2,python的特征: (1)易于学习,易于利用: (2)开发效率高,内建众多数据类型,强大的标准库支持: (3)高级语言: (4)可移植性,基于开放源代码特性 (5)可扩展性,如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用. (6)可嵌入,你可以将Python嵌入到C

Python之路【第一篇:Python基础之拾遗】

拾遗一:Python种类 1.Cpython: 由C语言实现,将.py文件编译为.pyc文件的字节码,再转换为机器码.    2.Jpython: 由JAVA语言实现,将python的代码编译为JAVA的字节码,再转换为机器码.    3.Ironpython: 由C#实现,将将python的代码编译为C#字节码,再转换为机器码. 4.pypy: 将python的代码转换为字节码的同时也转换为机器码,提高执行速度. 拾遗二:Python的编码 1.ASCII码(American Standard

Python之路【第一篇:Python基础】

一:python的使用 1.python的两个版本:python2.0与python3.0.这两个版本的区别在于python3是不向下兼容python2的组件和扩展的,但是在python2.6和2.7的两个版本中将会继续兼容python2.0和3.0两个版本.简单点说就是python2.6与2.7是2.0版本向3.0版本的过渡版本,同时python的2.7版本也将是最后一个2.0版本,之后将全部使用python的3.0版本. Windows中python3.x的安装: 1 1.下载安装包 2 h