jquery基础

1.jquery语法

  基础语法:$(selector).action()

    -1.美元符号$定义jquery

    -2.选择符(selector)"查询"和"查找"HTML元素

    -3.jQuery的action()执行对元素的操作

$(document).ready(function(){
    $("p").click(function(){
        $(this).hide();
    })
})

2.jquery基础选择器

  1.All Selector("*")

   描述:选择所有元素

   语法:$("*")

   注意:由于选取的是所有元素,因此浏览器将会比较缓慢,这个选择器需要谨慎使用

  2.Class Selector(".class")

   描述:选择给定样式类名的所有元素

   语法:$(".class")

  3.Element Selector("element")

   描述:根据给定(html)标记名称选择所有的元素

   语法:$("element")

  4.ID Selector("#id")

   描述:选择一个具有给定id属性的单个元素

   语法:$("#id")

  5,Multiple Seletor(“selector1,selector2,selectorN”)

   描述:将每个选择器匹配到的元素合并到一起后返回

   语法:$(“selector1,selector2,selectorN”)

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-3.2.1.min.js"></script>
</head>
<body>
    <div>
        <span class="s"></span>
        <p></p>
        <label id="lab"></label>
        <h1></h1>
        <a>haha</a>
        <b>heihei</b>
    </div>
<script>
    $(function(){
        $("div *").html("we are family");
    })

    $(function(){
        $(".s").html("hello");
    })

    $(function(){
        $("p").html("world");
    })

    $(function(){
        $("#lab").html("yangf");
    })

    $(function(){
        $("a, b").html("prog");
    })
</script>
</body>
</html>

3.jquery的属性选择器
  

  1.Attribute Contains Prefix Selector [name|= "value"]

   描述:选择指定属性值等于给定字符串或以该字符串为前缀(该字符串后跟一个连字符"-")的元素。

   语法:$("[attribute|= 'value']")

   注意:引号是可选的,可以是一个不带引号的一个单词或带一个引号的字符串

  2.Attribute Contains Selector [name *= "value"]

   描述:选择指定属性具有包含一个给定的字符串的元素。(选择给定的属性是以包含某些值的元素)

   语法:$("[attribute* = 'value']")

  3.Attribute Contains Word Selector [name ~= "value"]

   描述:选择指定属性用空格分割的值中包含一个给定值的元素。

   语法:$("[attribute ~= ‘value’]")

  4.Attribute Ends With Selector [name= "value"]

   描述:选择指定属性是给定值的元素

   语法:$("[attribute ='value']")

  5.Attribute Not Equal Selector [name!= "value"]

   描述:选择不存在指定属性,或者指定的属性值不等于给定值的元素

   语法:$([attribute != ‘value’])

  6.Attribute Ends With Selector [name= "value"]

   描述:选择指定属性是以给定值结尾的元素,区分大小写

   语法:$("[attribute$='value']")

  7.Attribute Starts With Selector [name= "value"]

   描述:选择指定属性是以给定值开始的元素。

   语法:$("[attribute^='value']")

  8.Has Attribute Starts Selector [name]

   描述:选择所有具有指定属性的元素,该属性可以是任何值。

   语法:$("[attribute]")

  9.Multiple Attribute Selector [name = "value"][name = "value2"]

   描述:选择匹配所有指定的属性筛选器的元素。

   语法:$("[attributeFilte1][attributeFilte2][attributeFilteN]")

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-3.2.1.min.js"></script>
</head>
<body>
    <a href="#" hreflang="en">英文</a>
    <a href="#" hreflang="zh">中文</a>
    <input name="man-news" id="man-news"/>
    <input name="milk man"/>
    <input id="letterman2" name="new-letterman"/>
    <input name="newmilk"/>
<script>
    $(function(){
        $("[hreflang = en]").css("color", "red");
    })

    $(function(){
        $("input[name~='man']").val('mr man is in it');
    })

    $(function(){
        $("input[id][name$='man']").val("only this one");
    })
</script>
</body>
</html>

 4.基础过滤

  -1.animated Selector

   描述:选择所有正在执行动画效果的元素。

   语法:$(“:animated”)

  

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        div{
            width: 100px;
            height: 100px;
            background-color: yellow;
            float: left;
            border: 1px solid #aaaaaa;
            margin: 0 5px;
        }
        .colored{
            background-color: green;
        }
    </style>
    <script src="jquery-3.2.1.min.js"></script>
</head>
<body>
    <button id="run">run</button>
    <div></div>
    <div id="mover"></div>
    <div></div>

<script>
    $(function(){
        $("#run").click(function(){
            $("div:animated").toggleClass("colored");
        });
        function animatedIt(){
            $("#mover").slideToggle("slow", animatedIt);
        }
        animatedIt();
    })
</script>
</body>
</html>

  -2.:eq() Selector

   描述:在匹配的集合中选择索引值为index的元素

   语法:(1) $(":eq(index)"):index:要匹配元素的索引值(从0开始计数)

      (2) $(":eq(-index)"):-index:要匹配元素的索引值(从0开始计数),从最后一个元素开始倒计数。

  -3.even Selector

   描述:选择索引值为偶数的元素,从0开始计数。也可以查看odd(奇数)。

   语法:$(":even")

   注意:这是基于0的索引,所以:even选择器是选择第一个元素,第三个元素,以此类推在匹配。

  -4.:first Selector

   描述:选择第一个匹配的元素。

   语法:$(":first")

  -5. :focus Selector

   描述:选择当前获取焦点的元素。

  -6. :header Selector

   描述:选择所有标题元素,像h1,h2,h3等

   语法:$(“:header”)

  

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .focused{
            background-color: #abcdef;
        }
    </style>
    <script src="jquery-3.2.1.min.js"></script>
</head>
<body>
    <div id="content">
        <input tabindex="1"/>
        <input tabindex="2"/>
        <select tabindex="3">
            <option>select menu</option>
        </select>
        <div tabindex="4">
            a div
        </div>
    </div>
<script>
    $(function(){
        $("#content").delegate("*","focus blur", function(event){
            var e = $(this);
            setTimeout(function(){
                e.toggleClass("focused", e.is(":focus"));
            }, 0);
        })
    })
</script>
</body>
</html>

  -7.:last Selector

   描述:选择最后一个匹配元素。

   语法:$(":last")

  -8.:gt() Selector

   描述:选择匹配集合中所有大于给定index的元素

   语法:$(":gt(index)")或者$(":gt(-index)")

  -9.:lt() Selector

   描述:选择匹配器集合中所有索引值小雨index的元素。

   语法:$(":lt(index)")或者$(":lt(-index)")

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<script src="jquery-3.2.1.min.js"></script>
<body>
    <table border="1">
        <tr><td>D #0</td><td>TD #1</td><td>TD #2</td> </tr>
        <tr><td>D #3</td><td>TD #4</td><td>TD #5</td> </tr>
        <tr><td>D #6</td><td>TD #7</td><td>TD #8</td> </tr>
    </table>
<script>
    $(function () {
        $("td:lt(4)").css("color", "red");
    })
</script>
</body>

</html>

  -10.:not() Selector

    描述:选择所有元素去除不匹配给定的选择器的元素。

    语法:$(":not(selector)")

5.子元素过滤

  -1.:first-child Selector

    描述:选择所有父级元素下的第一个子元素

    语法:$":first-child")

  -2.:last-child Selector

   描述:选择所有父级元素下的最后一个子元素

   语法:$“:last-child”)

  -3.:first-of-type Selector

   描述:选择所有相同元素名称的第一个兄弟元素

   语法:$“:first-of-type”)

  -4.:last-of-type Selector

   描述:选择所有相同元素名称的最后一个兄弟元素

   语法:$“:last-of-type”)

  -5.:nth-child() Selector

   描述:选择他们所有父元素的第n个元素。

   语法:$(":nth-child(index/even/odd/equation)")

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-3.2.1.min.js"></script>
    <style>
        .sogreen{
            background-color: green;
        }
    </style>
</head>
<body>
    <div>
        <span>s1</span>
        <span>s1</span>
        <span>s1</span>
    </div>
    <div>
        <span>s1</span>
        <span>s1</span>
        <span>s1</span>
    </div>
    <div>
        <span>s1</span>
        <span>s1</span>
        <span>s1</span>
    </div>
<script>
    $(function(){
        $("div span:first-child").css("text-decoration", "underline").hover(function(){
            $(this).addClass("sogreen");
        }, function(){
            $(this).removeClass("sogreen")
        });
    })
</script>
</body>
</html>

 6.内容过滤

  -1.:container() Selector

   描述:选择所有包含指定文本的元素

   语法:$(":contains(text)")

   注意:text:用来查找的一个文本字符串。这是区分大小写的。匹配的文本可以直接出现在所选的元素中,

或在该元素的任何后代中,或两者兼有。

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-3.2.1.min.js"></script>
</head>
<body>
    <div>yangf</div>
    <div>abc</div>
    <div>ooo</div>
    <div>mmm</div>
<script>
    $(function(){
        $("div:contains(yangf)").css("text-decoration","underline");
    })
</script>
</body>
</html>

  -2.:empty Selector

   描述:选择所有没有子元素的元素(包括文本节点)

   语法:$(":empty")

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-3.2.1.min.js"></script>
</head>
<body>
    <table border="1">
        <tr><td>#TD 0</td><td></td></tr>
        <tr><td>#TD 2</td><td></td></tr>
        <tr><td></td><td>#TD 5</td></tr>
    </table>
<script>
    $(function(){
        $("td:empty").css("color", "red");
    })
</script>
</body>
</html>

  -3.:has() Selector

   描述:选择元素其中至少包含指定选择器匹配的一个种元素。

   语法:$("has(selector)")

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-3.2.1.min.js"></script>
    <style>
        .text{
            border:1px solid green;
        }
    </style>
</head>
<body>
    <div><p>hello world</p></div>
    <div>hello jQuery!</div>
<script>
    $(function(){
        $("div:has(p)").addClass("text");
    })
</script>
</body>
</html>

  -4.parent Selector

   描述:选择所有含有子元素或者文本的父级元素。

   语法:$(":parent")

7.表单

  -1.:button seletor

   描述:选择所有按钮元素和类型为按钮的元素

   语法:$(":button")

  -2.:checkbox selector

   描述:选择所有类型为复选框的元素

   语法:$(“:checkbox”)

  -3.:checked selector

   描述:匹配所有勾选的元素

   语法:$(“:checked”)

  -4.:disabled selector

   描述:选择所有被禁用的元素

   语法:$(":disabled")

  -5.:enabled selector

   描述:选择所有可用的(未被禁用)元素

   语法:$(":enabled")

  -6.:file selector

   描述:选择所有类型为文件的元素

   语法:$(":file")

  -7:focus selector

   描述:选择当前获取焦点的元素

   语法:$(":focus")

  -8:image selector

   描述:选择所有图像类型的元素

   语法:$(":image")

  -9:input selector

   描述:选择所有input,textarea,select,button元素

   语法:$(":input")

  -10:password selector

   描述:选择所有类型为密码的元素

   语法:$(":password")

  -10:radio selector

   描述:选择所有类型为单选框的元素

   语法:$(":radio")

  -11:radio selector

   描述:选择所有类型为提交的元素

   语法:$(":submit")

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-3.2.1.min.js"></script>
    <style>
        textarea{
            height:35px;
        }
        div{
            color:red;
        }
        fieldset{
            margin: 0;
            padding: 0;
            padding-width: 0;
        }
        .marked{
            background-color: yellow;
            border: 3px solid red;
        }
    </style>
</head>
<body>
    <form>
        <fieldset>
            <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>
            <input name="email" disabled="disabled">

        </fieldset>
    </form>
<div></div>
<script>
    $(function(){
        $("input:button").addClass("marked");
        $("input:image").addClass("marked");
        $("input:input").addClass("marked");
        $("input:disabled").val("disabled");
    })
</script>
</body>
</html>

 8.层级

  -1.Child selector(parent -》child)子元素选择器

   描述:选择所有指定parent元素中指定的child的直接子元素

   语法:$("parent>child")

   注:parent:任何有效的选择器

     child:用来筛选子元素的选择器

  -2.descendant selector(后代选择器)

   描述:选择给定的祖先元素的所有后代元素。

   语法:$("ancestor descendant")

   注:ancestor:任何有效的选择器

     descendant:一个用来筛选后代元素的选择器。

  -3.next adjacent selector("prev + next")相邻选择器

   描述:选择所有紧接在prev元素后的next元素

   语法:$("prev + next")

   注:prev:任何有效的选择器

     next:用于筛选紧跟在prev元素后元素的选择器

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-3.2.1.min.js"></script>
</head>
<body>
    <ul class="topnav">
        <li>li1</li>
        <li>li2
            <ul>
                <li>next l1</li>
                <li>next l2</li>
                <li>next l3</li>
            </ul>
        </li>
        <li>li3</li>
    </ul>
<script>
    $(function(){
        $(".topnav>li").css("border","1px solid red");
        $(".topnav li").css("border","1px solid red");
        $("li + li").css("border","1px solid red");
    })
</script>
</body>
</html>

  -4.Next Siblings selector("prev ~ siblings")

   描述:匹配prev元素之后所有的兄弟元素。具有相同的父元素,并匹配过滤siblings

   语法:$("prev~siblings")

   注:prev:任何有效的选择器

     siblings:一个选择器来过滤第一选择器以后的兄弟元素。

     prev+next和prev~siblings之间最值得注意的不同点是他们各自的可及之范围。前者

只达到紧随的同级元素。后者扩展了该达到跟随其的所有同级元素。

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-3.2.1.min.js"></script>
</head>
<body>
    <span id="prev">span</span>
    <div>div1</div>
    <div>div2</div>
    <div>div3
        <div>div4</div>
    </div>
<script>
    $(function(){
        $("#prev~div").css("border","1px solid red");
    })
</script>
</body>
</html>

9.过滤可见性过滤
  

  -1.过滤

    先选择css选择器,再选择jquery选择器

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-3.2.1.min.js"></script>
</head>
<body>
    <table border="1">
        <tr><td>index 0</td></tr>
        <tr><td>index 1</td></tr>
        <tr><td>index 2</td></tr>
        <tr><td>index 3</td></tr>
    </table>
<script>
    $(function(){
        $("table tr:even").css("color", "red");
    })
</script>
</body>
</html>

  -2.可见性过滤

    -1.hidden selector

    描述:选择所有隐藏的元素

    语法:$(":hidden")

    补充:元素可以被认为是隐藏的几个情况:1.它们的css display是none,2.它们是type="hidden"的表单元素,3.它们的宽度和高度为0,4.一个祖先元素是隐藏的,因此该元素不会在页面上显示

    -2.visiable selector

    描述:选择所有可见的元素。

    语法:$(":visiable")

    如果元素占据文档中的一定空间,则认为元素是可见的。可见元素的宽度或者高度大于0。所以当元素的visibility:hidden或opacity:0被认为是可见的,因为他们仍然占据空间布局。

    不在文档中的元素是被认为隐藏的,jQuery无法知道它们是否可见,因此元素可见性依赖于适用的样式。

    隐藏元素上做动画,元素被认为是可见的,直到动画结束。显示元素上做动画,在动画开始处该元素被认为是可见的。

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-3.2.1.min.js"></script>
    <style>
        .outter{
            width: 300px;
            height:300px;
            background-color: red;
        }
        .inner{
            width: 50px;
            height: 50px;
            background-color: blue;
            display: none;
        }
    </style>
</head>
<body>
    <div class="outter">
        <div class="inner">
            hidden!
        </div>
    </div>
<script>
    $(function(){
        $(".outter .inner:hidden").css("display", "block");
    })
</script>
</body>
</html>

10.鼠标事件

   1.ckick:点击事件

   2.dbclick:双击事件

   3.hover:鼠标悬停和离开

   4.mousedown:鼠标按下

   5.mouseenter:鼠标进入元素

   6.mouseleave:鼠标离开元素

   7.mousemove:鼠标在元素内移动

   8.mouseout:鼠标离开元素(支持事件冒泡)

   9.mouseover:鼠标进入元素内(支持事件冒泡)

  10.mouseup:鼠标按键被释放

 

posted @ 2017-07-16 15:20  noooooob  阅读(287)  评论(0编辑  收藏  举报