jQuery之基础核心(demo)
jQuery之基础核心
作者的热门手记
jQuery之基础核心(demo)
本文主要简单的介绍下jQuery一些基础核心,大致了解jQuery使用模式。适用于有HTML、CSS、javascript基础,又刚刚接触jQuery的初学者。(如有错误,请指正)
咱们从基础语法说起,
基础语法是:$(selector).action()
- 美元符号$定义jQuery
- 选择符(selector)“查询”和“查找” HTML 元素
jQuery 的 action() 执行对元素的操作
$是什么?
在jQuery程序中,基本上都是以“$”开头的,那么这个$到底是什么呢?调试一下就知道
console.log(typeof $); //function
实际上来说,一般后面带()都是函数,如
test();
是不是应该之前就有定义过这个函数
function test(){
//...
}现在是不是就知道$是一个函数,那么也就是说$就是jQuery封装的一个函数。
由于$本身就是jQuery的缩写,也就是说$和jQuery是等价的。如:console.log($===jQuery); //true
那么其实也可以用jQuery开头。
强大的jQuery选择器
接下来我们来了解一下selector,一直以来,jQuery强大的选择器使其广受青睐。jQuery选择器大致分为基本选择器、属性选择器、表单选择器、位置选择器、过滤选择器、用于结果集的选择器。
- 基本选择器(仿CSS选择器,基本上能写CSS选择器,jQuery的基本选择器也掌握差不多)
$(*) //获取所有元素
$('#div1') //获取ID名为div1的元素
...
- 属性选择器(根据页面元素属性来获取)
$("[href]") //获取所有带有 href 属性的元素
$("[href='#']") //所有 href 属性的值等于 "#" 的元素
...- 表单选择器(根据表单type值来获取)
$(":password") // 获取type="password" 的 <input> 元素
$(":button") //获取type="button" 的 <input> 元素
... - 位置选择器(根据页面元素在页面的位置来获取)
$("ul li:first-child") //获取所以ul中第一个子元素li
$("ul li:last-child") // 获取所以ul中最后一个子元素li
... - 过滤选择器(通过特定的过滤规则来筛选出所需的 元素)
$(":empty") //获取无子(元素)节点的所有元素
$("p:hidden") //获取所有隐藏的 <p> 元素
... - 用于结果集的选择器(通过jQuery方法传参来筛选所需的元素)
$('div').has('span'); // 获取包含span元素的div元素
$('div').first(); //获取第1个div元素
...想了解更多jQuery选择器请查阅jQuery API,这里就不一一列举。
- 表单选择器(根据表单type值来获取)
方法函数化
上文提到$是jQuery封装的函数,那么$()是什么呢?
console.log($()); //Object
显而易见,$()是一个对象。$是jQuery封装的函数,那么$()也应该是jQuery对象。
console.log($() instanceof jQuery); //true
那么通过jQuery获取一个页面元素,也应该是jQuery对象。如获取页面上id名为p1的元素。
console.log($('#p1') instanceof jQuery); //true
在获取到页面元素以后,就可以对其进行某种操作了,也是action。在原生的JS中,我们要对元素进行操作是这样写的:
document.getElementById('p2').innerHTML="Perona";
那么在jQuery里面是不是可以这样写的:
$('#p3').html="Perona";//没任何效果
没有任何反应,这显然是不对。实际上,在jQuery里,执行操作很少用=,而是通过()传参来执行,前面提到凡是带()基本上就是一个函数,那么也就是说jQuery源码中应该有html()这个函数。那么现在我们试着传参来看看:
$('#p3').html('佩罗娜');
程序运行成功。这就是方法函数化。
取值与赋值
操作网页元素,最常见的需求是取值和赋值。
有趣的是,jQuery使用同一个函数,来完成取值(getter)和赋值(setter)。到底是取值还是赋值,由函数的参数决定。
如:
alert($('#div1').html()); //html()没有参数,表示取值
$('#div2').html("爱慕课");//html()有参数,表示赋值
需要注意的是,如果结果包含多个元素,那么赋值的时候,将对其中所有的元素赋值;取值的时候,则是只取出第一个元素的值(text()例外,它将取出所有元素的text内容)。
alert($('li').html());//当一组元素的时候,取值是一组中的第一个
$('li').html('佩罗娜');//当一组元素的时候,赋值是一组中的所有元素
alert($('li').text());
链式写法
前面提到$(selector)是jQuery对象,那么$(selector).action()执行完返回的又是什么呢?咱们调试一下:
console.log($('#div3').css('color', 'red'));//object
console.log($('#div3').css('color', 'red') instanceof jQuery);//true
返回的是object,还是一个对象。这是为什么呢?其实在执行action()操作的时候,我们得先获取元素对象后才可以调用action()。如果缺乏元素对象,代码就会报错,也就是说$().css('color', 'red');这种写法是错误的。我们得先获取元素对象,返回对象才可以调用action()。那么,也就是说,这个对象还是个jQuery对象。既然还是jQuery对象,那么是不是还可以接着调用action(),答案是肯定的。
console.log($('#div3').css('color', 'red').html('imooc'));//object
console.log($('#div3').css('color', 'red').html('imooc')instanceof jQuery);//true
这也正是jQuery的魅力之一,采用了链式写法,可以连续调用action(),大大简化代码。根据基本的语法采用链式写法,便衍生出这样的$(selector).action()…action()
如下面代码:
$('#div3').css('color', 'gold');
$('#div3').html('么么哒');
采用链式写法
$('#div4').css('color', 'gold').html('么么哒');
jQuery与原生JS
接下来咱们说说jQuery与原生JS的关系,首先知道jQuery 是一个 JavaScript 库,它在语法上是遵循原生JS的语法,也就是说jQuery与原生JS是可以共存的。但是两者之间并不能混用,不能在jQuery对象里调用JS的事件或方法,同样也不能在JS对象里调用jQuery的事件或方法。
js的写法
document.getElementById('btn1').onclick=(function(){
alert('么么哒');
});
jq的写法
$('#btn2').click(function(){
alert('慕女神');
});
错误的写法如:
在原生JS里调用jQuery的事件
document.getElementById('btn3').click(function(){
alert('慕女神');
});
在jQuery里调用原生JS的事件
$('#btn4').onclick=(function(){
alert('么么哒');
});
正所谓“知其然知其所以然”,想要更好的学习掌握jQuery,不妨去看看源码。推荐去看看Aaron艾伦的jQuery源码解析。
jQuery之基础核心(demo)的更多相关文章
- 第一百六十三节,jQuery,基础核心
jQuery,基础核心 一.代码风格 在jQuery程序中,不管是页面元素的选择.内置的功能函数,都是美元符号“$”来起 始的.而这个“$”就是jQuery当中最重要且独有的对象:jQuery对象,所 ...
- JQuery基础核心
一.代码风格 在jQuery程序中,不管是页面元素的选择.内置的功能函数,都是美元符号“$”来起始的. 而这个“$”就是jQuery当中最重要且独有的对象:jQuery对象,所以我们在页面元素选择或执 ...
- web前端基础——jQuery编程基础
1 jQuery简介 jQuery是一个兼容多浏览器的JavaScript库,核心理念是write less,do more(写得更少,做得更多).它对JavaScript进行了封装,使开发更便捷,并 ...
- 第一百六十六节,jQuery,基础 DOM 和 CSS 操作,元素内容,元素属性,css和class,元素宽度高度、偏移、滚动条
jQuery,基础 DOM 和 CSS 操作,元素内容,元素属性,css和class,元素宽度高度.偏移.滚动条 学习要点: 1.DOM 简介 2.设置元素及内容 3.元素属性操作 4.元素样式操作 ...
- 【学习笔记】jQuery的基础学习
[学习笔记]jQuery的基础学习 新建 模板 小书匠 什么是jQuery对象? jQuery 对象就是通过jQuery包装DOM对象后产生的对象.jQuery 对象是 jQuery 独有的. 如果 ...
- 适应手机端的jQuery图片滑块动画DEMO演示
在线预览 下载地址 实例代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...
- [DOM Event Learning] Section 3 jQuery事件处理基础 on(), off()和one()方法使用
[DOM Event Learning] Section 3 jQuery事件处理基础 on(),off()和one()方法使用 jQuery提供了简单的方法来向选择器(对应页面上的元素)绑定事件 ...
- jQuery 插件基础
jQuery 插件基础 翻译 How to Create a Basic Plugin 如果你需要在 jQuery 选择器上执行一系列重复操作, 这时候你需要编写 jQuery 插件. jQuery ...
- jquery插件开发基础入门
jquery插件开发基础入门 入门 编写一个jquery插件开始于给jquery.fn加入新的功能属性,此处添加的对象属性的名称就是你的插件名称 jQuery.fn,myPlugin = functi ...
随机推荐
- bash快捷方式
cmd /k "cd /d E:/site/collect/" ...
- Apache强制WWW跳转以及强制HTTPS加密跳转的方法
一般我会较多的使用WORDPRESS程序,其在安装的时候我们如果直接用WWW打开,或者在后台设置WWW域名则默认会强制301指向WWW站点域名.而这里有使用ZBLOG或者TYPECHO等其他博客程序则 ...
- DAY1 练习
要求:⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化), 如果三次用完了之后 问是否再试试 再给三次机会 如果不想试了说没有机会了. list = [{'usernam ...
- 使用U盘为龙芯笔记本安装操作系统
摘要:在没有光驱的情况下,可以使用dd命令或者ultraISO软件制作Linux安装U盘,方法适合龙芯和X86.AMD64的设备. 前段时间,由于开发需要,拿到了一部龙芯3A3000的笔记本.出厂的安 ...
- oracle插入数据的时候报错:ORA-00928: 缺失 SELECT 关键字
比如:插入数据的时候是这样的insert into a value('哈哈'); 报的是这样的错误:ORA-00928: 缺失 SELECT 关键字 其实就是value少了一个s,在oracle中,插 ...
- xcode的打包上线出问题:导入此构建版本时出错
原因:升级mac系统到了High sierra(10.13,目前还是测试版,并没有正式版,全新的文件系统 APFS (Apple File System))发现没有这个问题,于是乎,所以给出这种解决方 ...
- 关于“load”方法
load是一个方法,在程序文件中,只有ruby遇到它的时候才会执行.Ruby不会搜索整个文件去执行load命令.也就是说,当Ruby解释器遇到它的时候,它才会去寻找它要加载的文件.这意味着需要加载的文 ...
- cocos大量对象使用动作注意事项
,,} for i,v in ipairs(area) do if gameResult == v then ]) do local scale_1 = cc.ScaleTo:create(0.05, ...
- Gurobi在Python环境里安装与使用(Windows环境)
- Redis高可用方案----Redis主从+Sentinel+Haproxy
安装环境 这里使用三台服务器,每台服务器上开启一个redis-server和redis-sentinel服务,redis-server端口为6379,redis-sentinel的端口为26379. ...