Endsieg77's Studio.

jQuery基础回顾

2021/01/19 Share

说是回顾但其实我昨天下午刚刚学过,今天复盘一下。也为了以后再次使用可以快速抓到重点。

Basic Knowledge


Selector

1
$("tag.class").action()

or:

1
$("tag#id").action()

其中$是jQuery引入符,tag是html标签,class和id是标签属性中的名字。action()是某一事件。

特别地,

1
$(document).ready(function(){...})

在文档流加载完成后进行。和原生js中的windows.onload类似。


Events

鼠标事件 键盘事件 表单事件 窗口事件
click() keypress() submit() scroll()
dblclick() keydown() change() resize()
mouseenter() keyup() focus()
mouseleave() blur()
hover( , )

鼠标事件


可以为任意标签添加。事件都是字面意思,没什么好说的。

要注意的是hover需要为鼠标悬停和离开分别指定两个事件。


键盘事件


一般对输入框等添加。

也可以对window等添加。

例如:

1
2
3
4
5
var cnt = 0;
$(window).keypress(function(){
cnt += 1;
$("p.cnt").text(cnt);
})

总计在窗口中键盘被按下的次数。


表单事件


一般对input等添加。

  • submit()在提交后被执行。

  • change()在被改变后执行。

  • focus()在被选中时执行。

一个特殊用法:

1
$(selector).focus().action()

由于selector被聚焦时,focus()始终处于触发状态,action()不会被触发,而当selector失去焦点,则触发action()。action()可以是fadeOut()等。

  • blur()则在not focus时执行。

窗口事件


一般对window添加。


Chaining


jQuery为了防止重复选择同一元素而设计的语法。

1
$(selector).action1().action2()...

当然,也可以写成下面形式,以求美观。

1
2
3
4
$(selector).action1()
.action2()
.action3()
...

Effects


显示,隐藏


  • hide(), show() 字面意思。
  • toggle(speed, callback) 可以用来切换hide()show(),speed为速度,speed可以是”slow”, “fast”, 毫秒,callback为每次执行后的回调函数。注意,每个被选择的标签都会执行一次回调函数。

淡入,淡出


  • fadeIn, fadeOut, fadeToggle (speed, callback)

  • fadeTo将元素转为某一不透明度(0~1)。

    $(selector).fadeTo(speed,opacity,callback);


滑动


  • slideUp, slideDown, slideToggle(speed, callback)

动画


  • $(selector).animate({params},speed,callback);
    params为动画结束后该元素的css样式。
  • $(selector).stop(stopAll=false, goToEnd=false)在动画结束前停止动画。
    stopAll是清空动画队列,goToEnd是将动画立刻完成。二者默认false。

HTML

Acquire Contents & Attributions

  • text()获取或修改文本内容,无参为获取,有参为修改;

  • html()获取或修改带html标签的文本内容;

  • val()获取或修改表单的值。

  • 上面三种方法的回调函数:

    摘自W3School:上面的三个 jQuery 方法:text()、html() 以及 val(),同样拥有回调函数。回调函数由两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
    实例

  • attr()

    1. 对类似<a href="#"> </a>这样的,如果要得到其href,只需将attr的参数传为”href”即可。
    2. 如果要修改属性,有两种方法:
    // 1. 一次改一个属性:
    $(selector).attr("attr1", "value");
    // 2. 一次改多个属性:
    $(selector).attr({
        "key1": "value1",
        "key2": "value2",
        ...
    })
    

添加元素


  • append() 在被选元素的结尾插入内容;
  • prepend() 在被选元素的开头插入内容;
  • after() 在被选元素之后插入内容;
  • before() 在被选元素之前插入内容。

其中after和before可以接受无限数量的参数。


删除元素


  • remove() 将被选择元素连同其子元素一并删除,可以接受一个参数作为过滤器,删除被过滤出来的元素;
  • empty() 清空被选择元素的子元素。

CSS


  • addClass, removeClass, toggleClass() 接收参数将为选择元素增加/删除/轮换这些类。即改变class属性的内容;
  • css() 单参,接收propertyname作为参数,返回其值,接收字典作为参数,修改对象的多个css属性(类似attr的语法);双参修改这一属性的值。

尺寸


详见W3School:尺寸


遍历


详见W3School:遍历


AJAX(Asychronized Javascript and XML)

简单来说,就是在不重载页面的情况下调各种接口来改变页面内容。


load()


1
$(selector).load(URL, data, callback);

将URL文件中的内容放入选择器中,其中URL也可以是这样的形式:”文件URL 选择器”,来从文件中筛选某些特定标签的成分。

data存有请求的状态

callback常用参数:

  • responseTxt - 包含调用成功时的结果内容
  • statusTXT - 包含调用的状态
  • xhr - 包含 XMLHttpRequest 对象,该对象常用status和statusText两个属性。

$.get(), $.post()


1
$.get, post(URL, data, callback)
  • get以GET方法从服务器获取数据。

  • post以POST方法向服务器上传数据。

data存有请求的状态。


Practices


输入框按下enter键进行搜索

1
2
3
4
5
$("#input-box").keypress(function(event) {
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '13')
/*doSomething...*/
});
CATALOG
  1. 1. Basic Knowledge
    1. 1.1. Selector
    2. 1.2. Events
      1. 1.2.1. 鼠标事件
      2. 1.2.2. 键盘事件
      3. 1.2.3. 表单事件
      4. 1.2.4. 窗口事件
    3. 1.3. Chaining
    4. 1.4. Effects
      1. 1.4.1. 显示,隐藏
      2. 1.4.2. 淡入,淡出
      3. 1.4.3. 滑动
      4. 1.4.4. 动画
    5. 1.5. HTML
      1. 1.5.1. Acquire Contents & Attributions
      2. 1.5.2. 添加元素
      3. 1.5.3. 删除元素
      4. 1.5.4. CSS
      5. 1.5.5. 尺寸
    6. 1.6. 遍历
    7. 1.7. AJAX(Asychronized Javascript and XML)
      1. 1.7.1. load()
      2. 1.7.2. $.get(), $.post()
  2. 2. Practices
    1. 2.1. 输入框按下enter键进行搜索