zoukankan      html  css  js  c++  java
  • 11.19

    jQuery

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

    基本筛选器

    :first // 第一个
    :last // 最后一个
    :eq(index)// 索引等于index的那个元素
    :even // 匹配所有索引值为偶数的元素,从 0 开始计数
    :odd // 匹配所有索引值为奇数的元素,从 0 开始计数
    :gt(index)// 匹配所有大于给定索引值的元素
    :lt(index)// 匹配所有小于给定索引值的元素
    :not(元素选择器)// 移除所有满足not条件的标签
    例:
    $('li:not(.c1)') //找到所有不包含c1样式类的li标签
    $('li:not(:has(a))') //找到所有后代中不含a标签的li标签
    
    :has(元素选择器)// 选取所有包含一个或多个标签在其内的标签(指的是从后代元素找)
    例子:
    $('div:has(h1)') //找到所有后代中有h1标签的div标签
    $('div:has(.c1)') //找到所有后代中有c1样式类的div标签
    

    属性选择器

    attribute 
    attribute = value  //属性等于
    attribute != value //属性不等于
    
    例:
    <input type="text">
    <input type="password">
    <input type="checkbox">
    $("input[type='checkbox']");// 取到checkbox类型的input标签
    $("input[type!='text']");// 取到类型不是text的input标签
    

    表单筛选器

    用表单对象查找
    :text
    :password
    :file
    :radio
    :checkbox
    
    :submit
    :reset
    :button
    
    例:
    $(':checked')  //找到所有的checked
    

    表单对象属性

    :enabled
    :disabled
    :checked
    :selected
    
    例:
    <form>
      <input name="email" disabled="disabled" />
      <input name="id" />
    </form>
    
    $("input:enabled")  // 找到可用的input标签
    --------------------------------------------------------
    <select id="s1">
      <option value="beijing">北京市</option>
      <option value="shanghai">上海市</option>
      <option selected value="guangzhou">广州市</option>
      <option value="shenzhen">深圳市</option>
    </select>
    
    $(":selected")  // 找到所有被选中的option
    

    筛选器方法

    下一个元素

    $('#id').next()/.nextAll()/.nextUntil('#i2')
    分别为查找当前元素的下一个元素/查找当前元素下面所有的元素/查找当前元素至指定元素中间的所有元素
    

    上一个元素

    $("#id").prev()
    $("#id").prevAll()
    $("#id").prevUntil("#i2")
    
    和下一个元素用法相同
    

    父亲元素

    $("#id").parent()
    $("#id").parents()  // 查找当前元素的所有的父辈元素
    $("#id").parentsUntil() // 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。
    

    儿子和兄弟元素

    $("#id").children();// 儿子们
    $("#id").siblings();// 兄弟们
    

    查找

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

    $('div').find('p')
    
    等价于$('div p') 
    

    补充

    .first() // 获取匹配的第一个元素
    .last() // 获取匹配的最后一个元素
    .not() //  从匹配元素的集合中删除与指定表达式匹配的元素
    .has() //  保留包含特定后代的元素,去掉那些不含有指定后代的元素
    .eq() //  索引值等于指定值的元素
    

    操作标签

    样式操作

    样式类

    addClass(); //添加指定的css类名
    removeClass(); //移除指定的css类名
    hasClass(); // 判断样式是否存在
    toggleClass(); //切换css类名,如果有就移除,没有就添加
    

    css

    css('color','red')
    

    示例

    $('p').css('color','red');
    

    位置操作

    offset() //获取匹配元素在当前窗口的相对偏移或设置元素位置
    position() //获取匹配元素相对父元素的偏移
    scrollTop() //获取匹配元素相对滚动条顶部的偏移
    scrollLeft() // 获取匹配元素相对滚动条左侧的偏移
    

    .offset()方法允许我们检索一个元素相对于文档(document)的当前位置。

    .position()的差别在于:后者是相对于父级元素的位移

    尺寸

    height()
    width()
    innerHeight()
    innerWidth()
    outerHeight()
    outerWidth()
    

    文本操作

    HTML代码:

    html() //获取第一个匹配元素的html内容
    html(val) // 设置所有匹配元素的html内容
    

    文本值:

    text() //取得所有匹配元素的内容
    text(val) // 设置所有匹配元素的内容
    

    值:

    val() // 取得第一个匹配元素的当前值
    val(val) // 设置所有匹配元素的值
    val([val1,val2]) // 设置多选的checkbox、多选select的值
    

    例如:

    <input type="checkbox" value="basketball" name="hobby">篮球
    <input type="checkbox" value="football" name="hobby">足球
    
    <select multiple id="s1">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
    </select>
    

    设置值

    $("[name='hobby']").val(['basketball','football']);
    $("#s1").val(["1","2"])
    

    示例

    获取被选中的checkbox或radio的值:

    <label for="c1">女</label>
    <input name="gender" id="c1" type="radio" value="0">
    <label for="c2">男</label>
    <input name="gender" id="c2" type="radio" value="1">
    
    $("input[name='gender']:checked").val()
    

    属性操作

    用于ID等或自定义属性

    attr(attrName) // 返回第一个匹配元素的属性值
    attr(attrName,attrValue) //为所有匹配元素设置一个属性值
    attr({k1:v1 , k2:v2}) // 为所有匹配元素设置多个属性值
    removeAttr()// 从每一个匹配的元素中删除一个属性
    

    用于CheckBox和radio

    prop() // 获取属性
    removeProp() // 移除属性
    

    注意:在1.x及2.x版本的jQuery中使用attr对checkbox进行赋值操作时会出bug,在3.x版本的jQuery中则没有这个问题。为了兼容性,我们在处理checkbox和radio的时候尽量使用特定的prop(),不要使用attr("checked", "checked")。

    attr全称attribute(属性)

    pro全称property(属性)

    虽然都是属性,但他们所指的属性并不相同,attr所指的属性是HTML标签属性,而prop所指的是DOM对象属性,可以认为attr是显式的,而prop是隐式的。

    总结:

    1. 对于标签上有的能看到的属性和自定义属性都用attr
    2. 对于返回布尔值的比如checkbox、radio和option的是否被选中都用prop。

    文档处理

    添加到指定元素内部的后面

    $(A).appdend(B) //把B追加到A
    $(A).appendTo(B)    //把A追加到B
    

    添加到指定元素内部的前面

    $(A).prepend(B) //把B前置到A
    $(A).prependTo(B)   //把A前置到B
    

    添加到指定元素外部的后面

    $(A).after(B)   //把B放到A的后面
    $(A).insertAfter(B) //把A放到B的后面
    

    添加到指定元素外部的前面

    $(A).before(B)  //把B放到A的前面
    $(A).insertBefore(B)    //把A放到B的前面
    

    移除和清空元素

    remove()    // 从DOM中删除所有匹配的元素
    empty()     // 删除匹配的元素集合所有的子节点
    

    事件

    常用事件

    click(function(){...})

    hover(function(){...})

    focus(function(){...})

    blur(function(){...})

    change(function(){...})

    keyup(function(){...})

    绑定事件

    .on(event [,selector],function(){})

    • events: 事件
    • selector: 选择器(可选的)
    • function: 事件处理函数

    移除事件

    .off(event [,selector] [,function(){}])

    off() 方法移除用 .on()绑定的事件处理程序。

    • events: 事件
    • selector: 选择器(可选的)
    • function: 事件处理函数

    阻止后续事件执行

    1. return false;//常见阻止表达提交
    2. e.preventDefault();
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>阻止默认事件</title>
    </head>
    <body>
    
    <form action="">
        <button id="b1">点我</button>
    </form>
    
    <script src="jquery-3.3.1.min.js"></script>
    <script>
        $("#b1").click(function (e) {
            alert(123);
            //return false;
            e.preventDefault();
        });
    </script>
    </body>
    </html>
    

    注意:

    像click、keydown等DOM中定义的事件,我们都可以使用.on()方法来绑定事件,但是hover这种jQuery中定义的事件就不能用.on()方法来绑定了。

    想使用事件委托的方式绑定hover事件处理函数,可以参照如下代码分两步绑定事件:

    $('ul').on('mouseenter', 'li', function() {//绑定鼠标进入事件
        $(this).addClass('hover');
    });
    $('ul').on('mouseleave', 'li', function() {//绑定鼠标划出事件
        $(this).removeClass('hover');
    });
    

    阻止事件冒泡

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>阻止事件冒泡</title>
    </head>
    <body>
    <div>
        <p>
            <span>点我</span>
        </p>
    </div>
    <script src="jquery-3.3.1.min.js"></script>
    <script>
        $("span").click(function (e) {
            alert("span");
            e.stopPropagation();
        });
    
        $("p").click(function () {
            alert("p");
        });
        $("div").click(function () {
            alert("div");
        })
    </script>
    </body>
    </html>
    

    页面载入

    当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度。

    写法:

    $(document).ready(function)(){
    	//	代码
    }
    
    简写:
    $(function()){
    	// 代码
    }
    

    与window.onload的区别

    • window.onload()函数有覆盖现象,必须等待着图片资源加载完成之后才能调用
    • jQuery的这个入口函数没有函数覆盖现象,文档加载完成之后就可以调用(建议使用此函数)

    事件委托

    通过事件冒泡的原理,利用父标签去捕获子标签的事件

    //表格中每一行的编辑和删除按钮都能触发响应的事件
    $("table").on("click", ".delete", function () {
      // 删除按钮绑定的事件
    })
    
  • 相关阅读:
    day 1 python全栈学习笔记(不完全版)
    python全栈学习之旅正式开始了!
    [Web] Web开发中你可以借鉴的东西
    Google Guice 系列教程 - 基础实践
    Ant
    [Android]Android高级UI开发系列教程(一) Android拖拽教程
    [Android]Android高级UI开发系列教程(二) Android绘制教程
    [Android] 布局基础知识点
    BitbucketGit
    [Android]Android高级UI开发系列教程(三) Android样式和主题教程
  • 原文地址:https://www.cnblogs.com/maqiaobin/p/11891975.html
Copyright © 2011-2022 走看看