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");

JQuery入门篇的更多相关文章

  1. jquery(入门篇)无缝滚动

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. 从零开始学习jQuery (一) 入门篇

    本系列文章导航 从零开始学习jQuery (一) 入门篇 一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些 ...

  3. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  4. 1. web前端开发分享-css,js入门篇

    关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...

  5. web前端开发分享-css,js入门篇(转)

    转自:http://www.cnblogs.com/jikey/p/3600308.html 关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人 ...

  6. .NET Core实战项目之CMS 第四章 入门篇-Git的快速入门及实战演练

    写在前面 上篇文章我带着大家通过分析了一遍ASP.NET Core的源码了解了它的启动过程,然后又带着大家熟悉了一遍配置文件的加载方式,最后引出了依赖注入以及控制反转的概念!如果大家把前面几张都理解了 ...

  7. .NET Core实战项目之CMS 第六章 入门篇-Vue的快速入门及其使用

    写在前面 上面文章我给大家介绍了Dapper这个ORM框架的简单使用,大伙会用了嘛!本来今天这篇文章是要讲Vue的快速入门的,原因是想在后面的文章中使用Vue进行这个CMS系统的后台管理界面的实现.但 ...

  8. Web前端JQuery入门实战案例

    前端jquery入门到实战 为什么要学习Jquery?因为生活. 案例: <!DOCTYPE html> <html lang="zh-CN"> <h ...

  9. web前端开发分享-css,js入门篇

    学习没有捷径,但学习是有技巧与方法.   一,css入门篇:   推荐书籍:css哪些事儿,精通css. 理由:css那些事儿,他是一本介绍css基础类的书,是入门的经典读物. 系统的介绍了css的选 ...

随机推荐

  1. Java常用关键字的原理及用法

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10843135.html 一:transient 用途:Java中一个类在定义时如果实现了Serilizabl ...

  2. <code> 标签 让一段计算机代码显示在网页中

    <code> 标签 解释:要让一段计算机代码显示在网页中,那么这段代码需要用<code> 标签包起来,不然他会被当作网页的代码被 运行. 例如: <code>< ...

  3. 第一部分day1-变量、运算

    变量:为了存储程序运算过程中的一些中间 结果,为了方便日后调用常量:固定不变的量,字符大写 变量的命名规则 1.字母数字下划线组成2.不能以数字开头,不能含特殊字符和空格3.不能以保留字命名4.不能以 ...

  4. ThinkPHP获取当前页URL添加canonical

    最近ytkah正在开发一个thinkPHP项目,数据量有点大,很多页面都没被索引,需要对模板进行修改,首先需要改的是页面唯一性,因为产品页加入购物车等行为会带有一些参数,如果不加入canonical标 ...

  5. P1908 逆序对-(树状数组)

    https://www.luogu.org/problem/P1908 比较喜欢线段树,懒得用树状数组(只会套模板,位运算的精髓没有领悟到),一直没有记录树状数组代码,又得捡回来,趁这道题记录一下模板 ...

  6. html2canvas@^1.0.0-rc.1

    这个版本的html2canvas是我在npm找到的,有严重问题,如截图后字体变小,解决方法就是官网找个min.js的版本,放到项目中引用就好 https://html2canvas.hertzen.c ...

  7. MongoDB executionStats 详细分步查询计划与分步时间(转载)

    mongodb性能分析方法:explain() 为了演示的效果,我们先来创建一个有200万个文档的记录.(我自己的电脑耗了15分钟左右插入完成.如果你想插更多的文档也没问题,只要有耐心等就可以了.) ...

  8. Pandas | 07 函数应用

    要将自定义或其他库的函数应用于Pandas对象,有三个重要的方法,下面来讨论如何使用这些方法.使用适当的方法取决于函数应用于哪个层面(DataFrame,行或列或元素). 表合理函数应用:pipe() ...

  9. shell 字符串拼接

    #!/bin/bash name="Shell" url="http://c.biancheng.net/shell/" str1=$name$url #中间不 ...

  10. 【Gamma】Scrum Meeting 10

    目录 写在前面 任务进度表 燃尽图 照片 写在前面 例会时间:6.8 22:30-23.00 例会地点:微信群语音通话 代码进度记录github在这里 任务进度表 注:点击链接跳转至相应的issue ...