jQuery的基础操作——DOM基本操作

JQuery中的DOM操作主要对包括:建【新建】、增【添加】、删【删除】、改【修改】、查【查找】【像数据库操作】。

我们通过对比js创建节点和jquery创建节点来分析jquery的方便之处

首先我们来看一下使用原生js来创建标签的方法

// 原生JS

var header = document.createElement('div')

header.className = 'header';

document.querySelector('.container').appendChild(header);

接下来我们使用jQuery来创建标签

var header = $('<div class="header">');    // 创建标签

$('.container').append(header);    // append() 拼接元素

$('.container').append(header);    //将创建的标签添加到class名为container的div里

我们可以把以上步骤进行简化

$('<div class="header">').appendTo('.container')

我们可以对比,使用原生js创建节点和使用jquery创建节点,使用jquery明显要代码简洁、体积小,使用灵巧。

一、添加DOM节点常用的操作:

1、append()与appendTo()     拼接元素

// var header = $('<div class="header">');      //创建标签

// $('.container').append(header);        // append() 拼接元素

// header.appendTo($('.container'));      // appendTo()拼接元素

// header.appendTo('.container');      // 可以直接把容器的选择器写成参数,而不添加$()

使用jq创建结构的时候,可以同时创建多个标签

//当创建的标签结构比较简单时,我们可以使用下面这种方法

$('<div class="header"><h1>我是标题</h1></div>').appendTo('.container');

//当创建的标签结构比较复杂,代码比较多时,可以使用ES6的模板字符串来解决这个问题

//模板字符串使用``代表结构,所有内部内容,都是字符串的内容,可以换行写

//模板字符串内部如果需要使用变量的话,直接使用${},在内部编写就可以解析

var str = '我是内容';

 $(`<div>

          <div>

              <div>${ str }</div>

          </div>

     </div>`).appendTo('body');

2、使用after()和before()进行兄弟元素的拼接,将后面的元素拼接在前面元素的上下

$('<h1>h1</h1>').appendTo('.container');      //在class名为container的div里创建h1

$('<h2>h2/<h2>').appendTo('.container');      //在class名为container的div里创建h2


$('h2').before('<hr/>');    //在h2前面添加横线

$('h1').after('<hr/>');      //在h1后面添加横线

3、我们也可以使用insertAfter()和insertBefore()进行兄弟元素拼接  将前面的元素拼接在后面的元素上下

$('<hr/>').insertBefore('h2');     //在h2前面添加横线

$('<hr/>').insertAfter('h1');        //在h1后面添加横线

4、我们还有2个方法可以直接在父级所有的子集前面拼接元素

prepend()和prependTo()方法

$('<hr/>').prependTo('.container');

$('.container').prepend('<hr/>');

二、替换DOM节点常用的操作:

1、替换  使用replaceWith或者replaceAll

先在页面中添加4个h2

$('h2:eq(1)').replaceWith('<h1>标题</h1>');     //使用h1标题替换第二个h2标题

$('<h1>标题</h1>').replaceAll('h2:eq(1)');

三、删除dom节点,我们有两种方式

1、清空元素以及元素内容,使用remove();

$('<h1>我是被移除的元素</h1>').appendTo('.container').remove();

2、清空标签内所有内容

如果使用jq同时创建了多层的标签结构,则返回值代表最外层

$(`<ul>

      <li>li1</li>

      <li>li2</li>

      <li>li3</li>

</ul>`).appendTo('.container').empty();    //清空标签内所有内容,但保留标签

四、复制节点

使用clone();

$('.container').clone().appendTo('body');

以上为一些jquery里DOM元素节点的增、删、改、查的方法,后期有新的、简洁的方法继续更新。

五、操作节点属性的一些方法

首先,创建标签并拼接:

1、使用html()方法,获取全部内容

div.html();    

div.html('<h1>我是h1</h1>');      //如果html()方法有参数,则修改内容

2、使用text()方法获取文本内容

div.text();

div.text('我是修改后的文字');      //text()有参数的情况和html()类似

3、val()方法是为了给表单元素的value属性使用。有参则设置,无参则取值

$(':input').val('1234567890');     //设置input标签的value值

console.log($('input').val());      //获取input标签的value值

4、关于class的操作

添加class值

$('.container').addClass('c1').addClass('c2');     //一个标签可以设置多个class值,一个class也可以给多个标签设置

移除class值

$('.container').removeClass('c1');

切换class值

$('.container').toggleClass('abc');     //此方法多用于动画切换中,比如在点击事件中添加此方法,当触发点击事件,先判断有无此class值,若有则删除,若无则添加,可以多次操作进行切

5、attr()方法

首先创建一个a标签

$('.link').attr('href');      //如果attr方法只有一个参数,为属性名,则获取对应的属性值

$('.link').attr('href',"http://blog.lidaze.com");      //如果attr方法有2个参数,分别为名称值,为修改或添加属性值

$('.link').attr({      //如果attr方法有一个参数,并且为对象,则可以同时添加或修改多个属性与其对应的值

href:'http://book.lidaze.com',

title:'我是a标签'

});


$('.link').removeAttr('title')     //移除属性可以使用removeAttr()

6、css()方法

//css()方法和attr()方法使用几乎一样

//css()赋值标签的样式

$('.link').css('color');

$('.link').css('color','yellow');

$('.link').css({

color: 'green',

'font-size': '30px'

});

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,725评论 1 92
  • 请参看我github中的wiki,不定期更新。https://github.com/ivonzhang/Front...
    zhangivon阅读 7,097评论 2 19
  • FreeCodeCamp - HTML5 and CSS 发现原来在另外一台电脑学 FreeCodeCamp 的时...
    付林恒阅读 9,325评论 2 17
  • 就个人而言,自律是个人的规矩;就家庭而言,家规是一家的规矩;就一个公司而言,公司制度是管理规矩;就一支军队而...
    十年一井阅读 260评论 0 0
  • 现在我无所事事 现在我面对你静坐 在这宁静和幸福的闲暇中 来写出生命的诗歌
    刘汉皇阅读 191评论 0 2