jQuery学习,常用常记(语法,选择器,事件)

通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行"操作"(actions)。

jQuery 语法

jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。

基础语法: $(selector).action()

  • 美元符号定义 jQuery
  • 选择符(selector)"查询"和"查找" HTML 元素
  • jQuery 的 action() 执行对元素的操作

实例:

  • $(this).hide() - 隐藏当前元素
  • $("p").hide() - 隐藏所有 <p> 元素
  • $("p.test").hide() - 隐藏所有 class="test" 的 <p> 元素
  • $("#test").hide() - 隐藏所有 id="test" 的元素

jQuery 使用的语法是 XPath 与 CSS 选择器语法的组合。

文档就绪事件

您也许已经注意到在我们的实例中的所有 jQuery 函数位于一个 document ready 函数中:

$(document).ready(function(){ // 开始写 jQuery 代码... });

这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码,即 DOM 加载完成后才可以对 DOM 进行操作。

如果在文档没有完全加载之前就运行函数,操作可能失败。下面是两个具体的例子:

  • 试图隐藏一个不存在的元素
  • 获得未完全加载的图像的大小

提示:简洁写法(与以上写法效果相同):

$(function(){ // 开始写 jQuery 代码... });

以上两种方式你可以选择你喜欢的方式实现文档就绪后执行 jQuery 方法。

jQuery 入口函数:

$(document).ready(function(){
    // 执行代码
});
或者
$(function(){
    // 执行代码
});

JavaScript 入口函数:

window.onload = function () {
    // 执行代码
}

jQuery 入口函数与 JavaScript 入口函数的区别:

  •  jQuery 的入口函数是在 html 所有标签(DOM)都加载之后,就会去执行。
  •  JavaScript 的 window.onload 事件是等到所有内容,包括外部图片之类的文件加载完后,才会执行。

jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。

jQuery 选择器

  • jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。
  • jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。
  • 它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。
  • jQuery 中所有选择器都以美元符号开头:$()。

元素选择器

jQuery 元素选择器基于元素名选取元素。

$(document).ready(function(){
  $("button").click(function(){
    $("p").hide();
  });
});

#id 选择器

  • jQuery #id 选择器通过 HTML 元素的 id 属性选取指定的元素。
  • 页面中元素的 id 应该是唯一的,所以您要在页面中选取唯一的元素需要通过 #id 选择器。
$(document).ready(function(){
  $("button").click(function(){
    $("#test").hide();
  });
});

.class 选择器

jQuery 类选择器可以通过指定的 class 查找元素。

$(document).ready(function(){
  $("button").click(function(){
    $(".test").hide();
  });
});
语法描述实例
$("*")选取所有元素在线实例
$(this)选取当前 HTML 元素在线实例
$("p.intro")选取 class 为 intro 的 <p> 元素在线实例
$("p:first")选取第一个 <p> 元素在线实例
$("ul li:first")选取第一个 <ul> 元素的第一个 <li> 元素在线实例
$("ul li:first-child")选取每个 <ul> 元素的第一个 <li> 元素在线实例
$("[href]")选取带有 href 属性的元素在线实例
$("a[target='_blank']")选取所有 target 属性值等于 "_blank" 的 <a> 元素在线实例
$("a[target!='_blank']")选取所有 target 属性值不等于 "_blank" 的 <a> 元素在线实例
$(":button")选取所有 type="button" 的 <input> 元素 和 <button> 元素在线实例
$("tr:even")选取偶数位置的 <tr> 元素在线实例
$("tr:odd")选取奇数位置的 <tr> 元素在线实例

独立文件中使用 jQuery 函数

<head>
    <script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="my_jquery_functions.js"></script>
</head>
$("#id", ".class")  复合选择器
$(div p span)       层级选择器 //div下的p元素中的span元素
$(div>p)            父子选择器 //div下的所有p元素
$(div+p)            相邻元素选择器 //div后面的p元素(仅一个p)
$(div~p)            兄弟选择器  //div后面的所有p元素(同级别)
$(.p:last)          类选择器 加 过滤选择器  第一个和最后一个(first 或者 last)
$("#mytable td:odd")      层级选择 加 过滤选择器 奇偶(odd 或者 even)
$("div p:eq(2)")    索引选择器 div下的第三个p元素(索引是从0开始)
$("a[href='www.baidu.com']")  属性选择器
$("p:contains(test)")        // 内容过滤选择器,包含text内容的p元素
$(":emtyp")        //内容过滤选择器,所有空标签(不包含子标签和内容的标签)parent 相反
$(":hidden")       //所有隐藏元素 visible 
$("input:enabled") //选取所有启用的表单元素
$(":disabled")     //所有不可用的元素
$("input:checked") //获取所有选中的复选框单选按钮等
$("select option:selected") //获取选中的选项元素

jQuery 是为事件处理特别设计的。

什么是事件?

  • 页面对不同访问者的响应叫做事件。
  • 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。
  • 实例:
    • 在元素上移动鼠标。
    • 选取单选按钮
    • 点击元素
鼠标事件键盘事件表单事件文档/窗口事件
clickkeypresssubmitload
dblclickkeydownchangeresize
mouseenterkeyupfocusscroll
mouseleavehoverblurunload

jQuery 事件方法语法

在 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery 方法。

$("p").click(function(){ // 动作触发后执行的代码!! });

常用的 jQuery 事件方法

$(document).ready()

  • $(document).ready() 方法允许我们在文档完全加载完后执行函数。该事件方法在 jQuery 语法 章节中已经提到过。

click()

  • click() 方法是当按钮点击事件被触发时会调用一个函数。
  • 该函数在用户点击 HTML 元素时执行。

dblclick()

  • 当双击元素时,会发生 dblclick 事件。

mouseenter()

  • 当鼠标指针穿过元素时,会发生 mouseenter 事件。

mouseleave()

  • 当鼠标指针离开元素时,会发生 mouseleave 事件。

mousedown()

  • 当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。

mouseup()

  • 当在元素上松开鼠标按钮时,会发生 mouseup 事件。

hover()

  • hover()方法用于模拟光标悬停事件。
  • 鼠标到元素上触发第一个函数(mouseenter);鼠标移出这个元素触发指定的第二个函数(mouseleave)。
$("#p1").hover(
    function(){
        alert("你进入了 p1!");
    },
    function(){
        alert("拜拜! 现在你离开了 p1!");
    }
);

focus()

  • 当元素获得焦点时,发生 focus 事件。
  • 当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。
$("input").focus(function(){
  $(this).css("background-color","#cccccc");
});

blur()

  • 当元素失去焦点时,发生 blur 事件。
$("input").blur(function(){
  $(this).css("background-color","#ffffff");
});

一.keypress,keydown,keyup的区别:

  •  1.keydown:在键盘上按下某键时发生,一直按着则会不断触发(opera浏览器除外), 它返回的是键盘代码;
  •  2.keypress:在键盘上按下一个按键,并产生一个字符时发生, 返回ASCII码。注意: shift、alt、ctrl等键按下并不会产生字符,所以监听无效 ,换句话说, 只有按下能在屏幕上输出字符的按键时keypress事件才会触发。若一直按着某按键则会不断触发。
  •  3.keyup:用户松开某一个按键时触发, 与keydown相对, 返回键盘代码.

二.两种常用用法举例

案例1:获取按键代码或字符的ASCII码

$(window).keydown( function(event){
   // 通过event.which可以拿到按键代码.  如果是keypress事件中,则拿到ASCII码.
} );

案例2:传递数据给事件处理函数

语法:

jQueryObject.keydown( [[ data ,]  handler ] );
  •  data: 通过event.data传递给事件处理函数的任意数据;
  •  handler: 指定的事件处理函数;

举例:

// 只允许按下的字母键生效, 65~90是所有小写字母的键盘代码范围.
var validKeys = { start: 65, end: 90  };
$("#keys").keydown( validKeys, function(event){
    var keys = event.data;  //拿到validKeys对象.
    return event.which >= keys.start && event.which <= keys.end;
} );

1. 获取事件对象

$(document).ready(function(){
    $(window).keypress(function(event){    
        //获取事件对象,里面包含各种有用的信息。
        console.log(event);
        //console.log(event.which);
    });
});

2. keypress事件获取键入字符

$(window).keypress(function(event){
    //event.which是获取ASCII码,前面的函数是将ASCII码转换成字符,空格键和Enter键输出均为空白。
    console.log(String.fromCharCode(event.which));
    //从event对象中key属性获取字符,但是Enter键的key值为"Enter",空白键还是空白" "。
    console.log(event.key);
});

 

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hhjian6666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值