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

原文地址:https://www.cnblogs.com/ZM191018/p/11724947.html

时间: 2024-10-13 00:50:48

JQuery入门篇的相关文章

从零开始学习jQuery (一) 开天辟地入门篇

原文:从零开始学习jQuery (一) 开天辟地入门篇 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) jQuery中的Ajax 从零开始学习jQuery (七) jQuery动画-让页面动起来! 从零开始学习jQuer

微信支付--入门篇

公众号支付有2种支付方式: JS API 支付:是指用户打开图文消息或者扫描二维码,在微信内置浏览器打开网页进行的支付.商户网页前端通过使用微信提供的 JS API,调用微信支付模块.这种方式,适合需要在商户网页进行选购下单的购买流程.  Native(原生)支付:是指商户组成符合 Native(原生)支付规则的 URL 链接,用户可通过点击该链接或者扫描对应的二维码直接进入微信支付模块(微信客户端界面),即可进行支付.这种方式,适合无需选购直接支付的购买流程. 以上两种方式最大的区别是:是否需

第15章WEB15-AJAX和JQuery案例篇

今日任务? 使用AJAX完成用户名的异步校验? 使用JQuery完成用户名异步校验? 使用JQuery完成商品信息模糊显示? 使用JQuery完成省市联动效果返回XML? 使用JQuery完成省市联动效果返回JSON教学导航教学目标了解AJAX的基本使用掌握JQuery的AJAX部分的代码掌握JQuery返回XML和JSON格式数据如何处理教学方法案例驱动法1.1 上次课内容回顾:JDBC的添加,修改,删除查询. 查询: 在首页点击查询:提交到Servlet--调用业务层--调用DAO 添加:

python 微信开发入门篇-调用JS SDK 含微信支付(二)

本章节完成微信js sdk + 微信支付调用,项目基础部分请参照入门篇第一章:https://www.cnblogs.com/wangcongxing/p/11546780.html 1.微信服务号设置    登录服务号后台设置如下: 1.登录地址:https://mp.weixin.qq.com/ 2.设置-->公众号设置-->功能设置 设置后结果如下 2.微信商户后台设置 登录微信支付平台设置如下: 1.登录地址(因为需要安装exe插件, 设置浏览为兼容模式  建议使用QQ浏览器):htt

《Java从入门到放弃》入门篇:springMVC数据校验

昨天我们扯完了数据传递,今天我们来聊聊数据校验的问题.来,跟着我一起读:计一噢叫,一按艳. 在springMVC中校验数据也非常简单,spring3.0拥有自己独立的数据校验框架,同时支持JSR303标准的校验框架. Spring的DataBinder在进行数据绑定时,会同时调用校验框架完成数据校验工作. 具体使用步骤如下: 1)导入数据校验的JAR包 2)在springmvc的配置文件中添加校验Bean 3)修改实体类,在属性上加上校验的注解 4)修改昨天的login4方法,加上校验的相关代码

JQuery之JQuery的版本 JQuery入门 属性获取 JQuery就绪函数 JS文档就绪函数和JQuery文档就绪函数的区别 JS对象和JQuery对象的区别 关于$的使用 多个JS库的冲突解决方案

JQuery的版本 JQuery入门 属性获取 JQuery就绪函数 JS文档就绪函数和JQuery文档就绪函数的区别 JS对象和JQuery对象的区别 关于$的使用 多个JS库的冲突解决方案 JQuery的版本 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery的版本</title> <

Vue学习笔记入门篇——组件的使用

本文为转载,原文:Vue学习笔记入门篇--组件的使用 组件定义 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 组件使用 注册 注册一个全局组件,你可以使用 Vue.component(tagName, options).组件在注册之后,便可以在父实例的模块中以自定义元素 的形式使用.

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa

漫游Kafka入门篇之简单介绍

原文地址:http://blog.csdn.net/honglei915/article/details/37564521 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kafka将消息以topic为单位进行归纳. 将向Kafka topic发布消息的程序成为producers. 将预订topics并消费消息的程序成为consumer. Kafka以集群的方式运行,