zoukankan      html  css  js  c++  java
  • JQuery入门篇

    JQuery入门篇

    jQuery选择器

    “$”表示JQuery对象

    根据ID查找

    $(‘#var’)表示将一个id值为var的DOM节点封装成一个jQuery对象,DOM节点必须以“#”开头。

           例如:有<div id="var "></div>存在,使用$(‘#var’)之后会将其封装成[<div id="var "></div>],但是如果不存在id=”var”,返回的jQuery对象是[],而不是一个null或undefined。

    // 查找<div id="abc">:

    var div = $('#abc');           //获取id=”abc”的节点

    根据class查找

    1、只存在一个class样式:

    var a = $('.red'); // 所有节点包含`class="red"`都将返回

    // 例如:

    // <div class="red">...</div>

    // <p class="green red">...</p>

    根据Tag(标签)查找

    var ps = $('p'); // 返回所有<p>节点

    ps.length; // 数一数页面有多少个<p>节点

    根据属性查找

    var email = $('[name=email]'); // 找出<??? name="email">

    var passwordInput = $('[type=password]'); // 找出<??? type="password">

    //当属性值包含空格等特殊字符时,需要加上“”

    var a = $('[items="A B"]'); // 找出<??? items="A B">

    使用前缀、后缀的属性查找

    var icons = $('[name^=icon]'); // 找出所有name属性值以icon开头的DOM

    // 例如: name="icon-1", name="icon-2"

    var names = $('[name$=with]'); // 找出所有name属性值以with结尾的DOM

    // 例如: name="startswith", name="endswith"

    组合查找

    var emailInput = $('input[name=email]'); // 只查找input标签里name属性为Email的DOM节点,不会找出<div name="email">

    多项选择器查找

    $('p,div'); // 把<p>和<div>都选出来

    $('p.red,p.green'); // 把<p class="red">和<p class="green">都选出来

    要注意的是,选出来的元素是按照它们在HTML中出现的顺序排列的,而且不会有重复元素。例如,<p class="red green">不会被上面的$('p.red,p.green')选择两次。

    层级选择器

    对于两个DOM元素具有层级关系,可以使用层级选择器。层级选择器之间使用空格。

    $('form[name=upload] input’);            //选择form表单中name属性为upload的表单内容

    $('form.test p input');                   // 在form表单选择被<p>包含的<input>的节点

    子选择器

    子选择器跟层级选择器很类似,区别在于子选择器限定的层级关系必须是父子节点。

    <!-- HTML结构 -->

    <div class="testing">

        <ul class="lang">

            <li class="lang-javascript">JavaScript</li>

            <li class="lang-python">Python</li>

            <li class="lang-lua">Lua</li>

        </ul>

    </div>

     

     

    $('ul.lang>li.lang-javascript'); // 可以选出[<li class="lang-javascript">JavaScript</li>]

    $('div.testing>li.lang-javascript'); // [], 无法选出,因为<div>和<li>不构成父子关系

    过滤器

    过滤器通常结合选择器一起使用

    $('ul.lang li'); // 选出JavaScript、Python和Lua 3个节点

    $('ul.lang li:first-child'); // 仅选出JavaScript

     

    $('ul.lang li:last-child'); // 仅选出Lua

    $('ul.lang li:nth-child(2)'); // 选出第N个元素,N从1开始

    $('ul.lang li:nth-child(even)'); // 选出序号为偶数的元素

    $('ul.lang li:nth-child(odd)'); // 选出序号为奇数的元素

    查找

    通常在某个节点的子节点中查找。使用find()方法,可以接受任何一个选择器。

    例如:

    <!-- HTML结构 -->

    <ul class="lang">

        <li class="js dy">JavaScript</li>

        <li class="dy">Python</li>

        <li id="swift">Swift</li>

        <li class="dy">Scheme</li>

        <li name="haskell">Haskell</li>

    </ul>

    1、向下查找:

    var ul = $('ul.lang'); // 获得<ul>

    var dy = ul.find('.dy'); // 获得JavaScript, Python, Scheme

    var swf = ul.find('#swift'); // 获得Swift

    var hsk = ul.find('[name=haskell]'); // 获得Haskell

    2、向上查找,使用parent()方法:

    var swf = $('#swift'); // 获得Swift

    var parent = swf.parent(); // 获得Swift的上层节点<ul>

    var a = swf.parent('.red'); // 获得Swift的上层节点<ul>,同时传入过滤条件。如果ul不符合条件,返回空jQuery对象

    3、同层级的查找,使用prev()和next()方法

    var swift = $('#swift');

     

    swift.next(); // Scheme

    // 返回空的jQuery对象,因为Swift的下一个元素为Scheme不符合条件[name=haskell]

    swift.next('[name=haskell]');

    swift.prev(); // Python

    swift.prev('.dy'); // Python,因为Python同时符合过滤器条件.dy

    过滤

    1filter()方法可以过滤掉不符合选择器条件的节点:

    var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskell

    var a = langs.filter('.dy'); // 拿到JavaScript, Python, Scheme

    //函数内部的this被绑定为DOM对象,不是jQuery对象

    var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskell

    langs.filter(function () {

    // this指的是标签为li的DOM对象

        return this.innerHTML.indexOf('S') === 0; // 返回S开头的节点

    }); // 拿到Swift, Scheme

     

    2map()方法把一个jQuery对象包含的若干DOM节点转化为其他对象:

    var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskell

    var arr = langs.map(function () {

        return this.innerHTML;

    }).get(); // 用get()拿到包含string的Array:['JavaScript', 'Python', 'Swift', 'Scheme', 'Haskell']

     

    3、一个jQuery对象如果包含了不止一个DOM节点,first()last()slice()方法可以返回一个新的jQuery对象,把不需要的DOM节点去掉:

    var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskell

    var js = langs.first(); // JavaScript,相当于$('ul.lang li:first-child')

    var haskell = langs.last(); // Haskell, 相当于$('ul.lang li:last-child')

    var sub = langs.slice(2, 4); // Swift, Scheme, 参数和数组的slice()方法一致

    总结:

    $("")是一个jquery对象,而不是一个dom element 
    value是dom element的属性 

    jquery与之对应的是val 

    val() :获得第一个匹配元素的当前值。 
    val(val):设置每一个匹配元素的值。 

    所以,代码应该这样写: 
    取值:val = $("#id")[0].value; 或者$("#id").val();
    赋值: $("#id")[0].value = "new value"; 或者$("#id").val("new value"); 

  • 相关阅读:
    分布式和集群
    c++ >>
    c++ ip地址相关
    c++ ip地址的操作 c版
    c++ 缺少动态库
    c++ dirname() basename()
    shell ulimit -n
    shell 进程查询相关的命令
    shell grep 高亮
    c++ swap 函数
  • 原文地址:https://www.cnblogs.com/ZM191018/p/11724947.html
Copyright © 2011-2022 走看看