zoukankan      html  css  js  c++  java
  • 9_10jQuery剩余

    一。表单筛选器。

      在jQuery中有,专门对表单中的元素,进行筛选的表单筛选器。

      其实使用基本筛选器也可以筛选出相应的元素,但是,为了jQuery的简便性,以及对表单操作的频繁,这里可以使用专门的筛选器:

    :text
    :password
    :file
    :radio
    :checkbox
    
    :submit
    :reset
    :button

      这些都是表单中type属性对应的值通过jQuery的语法可以找到相应的标签元素。

       除此之外,还可以寻找,form表单中的属性值:

    :enabled
    :disabled
    :checked
    :selected

      这些都是input或者select等表单的属性,如果表单中包括该属性,就会被找到。

      注意:其中:checked本来是radio中的默认选项,但是也会找到selected中的默认option,为了避免这个可以在该筛选器之前加上标签名input:

     二。筛选器方法。

      这个系列方法可以找出一个给定元素标签的上下左右,父子等元素标签,可以通过一个给定的元素,找到整个页面所有的标签元素:

    1.下一个元素。

      找出该元素的下面的某些元素:

    $("#id").next() --找出该元素下面的一个元素
    $("#id").nextAll() --找出该元素下面的所有的元素
    $("#id").nextUntil("#i2")  --找到该元素下面的所有元素,直到#i2元素为止。

    实例:

     2.上一个元素。

      找出该元素的上面某些元素。

    $("#id").prev()  --找出该元素的上一个元素
    $("#id").prevAll()  --找出该元素的上面所有的元素
    $("#id").prevUntil("#i2")  --找出该元素上面的所有元素,直到#i2为止

      示例:

     3.父亲元素。

      查找该标签的某些父类。

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

    示例:

     4.儿子和兄弟元素:

    $("#id").children();// 找到该元素的所有儿子们
    $("#id").siblings();// 找到该元素的所有兄弟们

    示例:

     其中返回的是一个数组,需要用下标取出才能得到真正的js原生对象,这种对象是不可以使用jQuery的方法,需要使用$()对其进行转换。

    5.查找。

      该方法可以在一个指定的标签范围中,再找一次:

    $("div").find("p")

      可以处理处理结束的元素的后代元素。

    6.补充:

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

    三。链式操作。

      jQuery可以支持链式操作。就是可以再操作后再次执行点方法进行操作:

    $(this).next().removeClass('hide').parent().siblings().find('.items').addClass('hide')

      原理就是在每次生成对象时会返回自身,可以继续执行点方法。

    四。样式操作。

      这类操作是操作标签中的class。添加和删除其中的css样式。

    1.添加类名:

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

    2.设置css:

    css("color","red")//DOM操作:tag.style.color="red"

      可以 通过.css的方法设置一个对象的style格式。

    3.位置信息操作:

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

      .offset()方法允许我们检索一个元素相对于文档(document)的当前位置。和 .position()的差别在于: .position()是相对于相对于父级元素的位移。

    4.尺寸显示:

      各种标签元素的尺寸。

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

    5.文本操作。

      此操作是对元素中的text或者html进行操作。

    html:

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

    文本值:

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

    获取值:

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

    例子:

    <form>
        <p>username:<input type="text" id="d1"><span class="error">1</span></p>
        <p>password:<input type="password" id="d2"><span class="error">1</span></p>
        <input type="submit" value="提交" id="d3">
    
    </form>
    <script>
        var subEle = document.getElementById('d3');
        subEle.onclick = function () {
            var useEle = $('#d1').val();
            var pwdEle = $('#d2').val();
            if (useEle.length === 0){
                $('.error').first().text('没有值')
                return false
            }
            if (pwdEle.length === 0){
                $('.error').last().text('没有值')
                return false
            }
        }
    
    
    </script>
    设置值

    5.属性操作:

      在jQurry中,加参数就是设置值不爱参数就是回去值。

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

      使用attr对标签元素中的属性和值进行增加和修改。

       对于checkbox和radio有特殊的方法识别其中的属性:

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

    区别:

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

      总结:

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

    五。文档处理

      这一系列可以操作将一个元素添加到某元素的相对位置里:
      添加到指定元素内部的后面:

    $(A).append(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()// 删除匹配的元素集合中所有的子节点。

      克隆:

      clone()将该元素克隆一份一样的。如果()中有true,可以克隆其中的标签。

    <form>
        <input type="button" value="克隆" id="d1">
    </form>
    <script>
      $("#d1").on("click", function () {
        $(this).clone(true).insertAfter(this);
      });
    </script>
    克隆例子

    六。事件。

    jQuery绑定事件有两种方式

    1.

    $(选择器).事件名(function(){

    事件代码

    })

    eg:$('button').click(function(){

    alert(123)

    })

    2.

    $(选择器).on(事件名,function(){

    事件代码

    })

    $('button').on('click',function(){

    alert(123)

    })

      常用事件有:

    click(function(){...}) //点击事件
    hover(function(){...}) //悬浮事件
    blur(function(){...})  
    focus(function(){...})
    change(function(){...})
    keyup(function(){...})

      其中hover中事件可以写两个函数,第一个函数是鼠标悬浮上去时运行的函数,而第二个函数是鼠标离开时的函数。

      如果只写一个函数,离开和悬浮都执行改函数。

      input实时监听:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="x-ua-compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>实时监听input输入值变化</title>
    </head>
    <body>
    <input type="text" id="i1">
    
    <script src="jquery-3.2.1.min.js"></script>
    <script>
      /*
      * oninput是HTML5的标准事件
      * 能够检测textarea,input:text,input:password和input:search这几个元素的内容变化,
      * 在内容修改后立即被触发,不像onchange事件需要失去焦点才触发
      * oninput事件在IE9以下版本不支持,需要使用IE特有的onpropertychange事件替代
      * 使用jQuery库的话直接使用on同时绑定这两个事件即可。
      * */
      $("#i1").on("input propertychange", function () {
        alert($(this).val());
      })
    </script>
    </body>
    </html>
    
    input值变化事件
    实时监听

    2.阻止事件发生。

      当我们使用submit绑定点击事件时,绑定后 的事件发生后,会继续刷新页面,要想阻止这个事件继续发生需要用一些函数,或者函数返回false停止事件的运行。

    <!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>

    3.阻止事件冒泡

      当一个div设置了点击事件后,其父标签和其父父标签都会发生点击事件,需要解决这个问题。

    <!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>

      总结:

      使用e.stopPropagation();可以阻止事件的发生。

    4.事件委托。

      在body中,所有按钮事先绑定了一些事件后,当js动态添加了按钮后,这些按钮是不会触发点击事件的,要想实现这一功能,需要进行事件委托。

    $("table").on("click", ".delete", function () {
      // 删除按钮绑定的事件(委托范围) (事件名)  (委托谁) (事件函数)
    })

    5.页面加载。

    页面加载
    第一种
    $(document).ready(function(){
    // 在这里写你的JS代码...
    })
    第二种

    $(function(){
    // 你在这里写你的代码
    })
    第三种
    直接写在body内最下方

    可以参照

    http://www.ruanyifeng.com/blog/2011/07/jquery_fundamentals.html

  • 相关阅读:
    python--模块与包
    内置函数 的总结
    迭代器 生成器 列表推导式 生成器表达式的一些总结
    函数的有用信息 带参数的装饰器 多个装饰器装饰一个函数
    函数名的应用(第一对象) 闭包 装饰器
    动态参数 名称空间 作用域 作用域链 加载顺序 函数的嵌套 global nonlocal 等的用法总结
    函数的初识 函数的返回值 参数
    文件操作 常用操作方法 文件的修改
    遍历字典的集中方法 集合的作用 以及增删查的方法
    计算机硬件的小知识
  • 原文地址:https://www.cnblogs.com/LZXlzmmddtm/p/11503240.html
Copyright © 2011-2022 走看看