jQuery学习

1.jQuery获取元素 : $(选择器)

$(document) //选择整个文档对象
$('#myId') //选择ID为myId的网页元素
$('div.myClass') // 选择class为myClass的div元素
$('input[name=first]') // 选择name属性等于first的input元素

代码实现:

window.$ = window.jQuery = function(selector){
  let elements = document.querySelectorAll(selector)
  return ...
}

2.jQuery链式操作

$('div').find('h3').eq(2).html('Hello');

分解开来就是

$('div') //找到div元素
  .find('h3') //选择其中的h3元素
  .eq(2) //选择第3个h3元素
  .html('Hello'); //将它的内容改为Hello

代码实现:

window.$ = window.jQuery = function(selectorOrArray){
  let elements
  if(typeof selectorOrArray === 'string'){
     elements = document.querySelectorAll(selector)
   }else if(selectorOrArray instanceof Array){
      elements = selectorOrArray 
    } 
  //选中一个元素,返回一个api对象,该对象可以操作选中的元素,这里以find为例
  return {  
     find(selector){
        let arr=[]
        for(let i=0;i<elements.length;i++){
          arr = arr.concat(Array.from(elements[i].querySelector(selector)))
        }
        return jQuery(arr)
      },
      addClass(className){...},
      end()...
    }
  }

3.jQuery 如何创建元素:

创建新元素的方法非常简单,只要把新元素直接传入jQuery的构造函数就行了

$('<p>Hello</p>');
$('<li class="new">new list item</li>');
$('ul').append('<li>list item</li>');

代码实现:

//这里通过template标签实现
create(string){
      const cotainer = document.createElement('template')
      container.innerHTML = string.trim()  //删空格
      return container.content.firstChild
 }

4.jQuery 如何移动元素:

jQuery 提供两组方法,来操作元素在网页中的位置移动。一组方法是直接移动该元素,另一组方法是移动其他元素,使得目标元素达到我们想要的位置。

  • 第一种方法是使用[.insertAfter()],把div元素移动p元素后面:
$('div').insertAfter($('p'))  //返回div元素
  • 第二种方法是使用[.after(),把p元素加到div元素前面:
$('p').after($('div'))  //返回p元素
  • 使用这种模式的操作方法,一共有四对
 [.insertAfter()]和[.after()]:在现存元素的外部,从后面插入元素
 [.insertBefore()]和[.before()]:在现存元素的外部,从前面插入元素
 [.appendTo()]和[.append()]:在现存元素的内部,从后面插入元素
 [.prependTo()]和[.prepend()]:在现存元素的内部,从前面插入元素

5.jQuery 如何修改元素的属性

  • jQuery 使用同一个函数,来完成取值(getter)和赋值(setter),即"取值器"与"赋值器"合一。到底是取值还是赋值,由函数的参数决定。(重载和适配的思想)
$('h1').html(); //html()没有参数,表示取出h1的值
$('h1').html('Hello'); //html()有参数Hello,表示对h1进行赋值

常见的取值和赋值函数如下:

  [.html()]取出或设置html内容
  [.text()] 取出或设置text内容
  [.attr()]取出或设置某个属性的值
  [.width()] 取出或设置某个元素的宽度
  [.height()] 取出或设置某个元素的高度
  [.val()] 取出某个表单元素的值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容

  • jQuery jQuery简介 jQuery是一个javascript函数库 jQuery是一个轻量级的“写得少,...
    dingmouren123阅读 168评论 0 1
  • 为甚嚒要学习jQuery? 因为JS中有很多痛点: window.onload事件只能出现一次,如果出现多次,后面...
    magic_pill阅读 816评论 0 13
  • jQuery目前在Web前端开发所占的比重越来越高,在我们jQuery学习和开发的过程中都会去使用。jQuery帮...
    老夫撩发少年狂阅读 515评论 0 3
  • 在jQuery中,主要的DOM操作分为以下几类: 一、查找节点 1、查找元素节点 2、查找属性节点利用jQuery...
    McRay阅读 445评论 0 0
  • 1.导入js文件 (1)将jquery-1.8.3.js文件放入项目的js目录下(2)引入js文件 (3)测试代码...
    nzdnllm阅读 952评论 0 8