jQuery的基礎(chǔ)操作——DOM基本操作

JQuery中的DOM操作主要對(duì)包括:建【新建】逗堵、增【添加】畏陕、刪【刪除】横媚、改【修改】考赛、查【查找】【像數(shù)據(jù)庫操作】酥泛。

我們通過對(duì)比js創(chuàng)建節(jié)點(diǎn)和jquery創(chuàng)建節(jié)點(diǎn)來分析jquery的方便之處

首先我們來看一下使用原生js來創(chuàng)建標(biāo)簽的方法

// 原生JS

var header = document.createElement('div')

header.className = 'header';

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

接下來我們使用jQuery來創(chuàng)建標(biāo)簽

var header = $('<div class="header">');? ? // 創(chuàng)建標(biāo)簽

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

$('.container').append(header);??? //將創(chuàng)建的標(biāo)簽添加到class名為container的div里

我們可以把以上步驟進(jìn)行簡(jiǎn)化

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

我們可以對(duì)比今豆,使用原生js創(chuàng)建節(jié)點(diǎn)和使用jquery創(chuàng)建節(jié)點(diǎn),使用jquery明顯要代碼簡(jiǎn)潔柔袁、體積小呆躲,使用靈巧。

一捶索、添加DOM節(jié)點(diǎn)常用的操作:

1插掂、append()與appendTo()???? 拼接元素

// var header = $('<div class="header">');? ? ? //創(chuàng)建標(biāo)簽

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

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

// header.appendTo('.container');? ? ? // 可以直接把容器的選擇器寫成參數(shù),而不添加$()

使用jq創(chuàng)建結(jié)構(gòu)的時(shí)候情组,可以同時(shí)創(chuàng)建多個(gè)標(biāo)簽

//當(dāng)創(chuàng)建的標(biāo)簽結(jié)構(gòu)比較簡(jiǎn)單時(shí)燥筷,我們可以使用下面這種方法

$('<div class="header"><h1>我是標(biāo)題</h1></div>').appendTo('.container');

//當(dāng)創(chuàng)建的標(biāo)簽結(jié)構(gòu)比較復(fù)雜箩祥,代碼比較多時(shí)院崇,可以使用ES6的模板字符串來解決這個(gè)問題

//模板字符串使用``代表結(jié)構(gòu),所有內(nèi)部?jī)?nèi)容袍祖,都是字符串的內(nèi)容底瓣,可以換行寫

//模板字符串內(nèi)部如果需要使用變量的話,直接使用${}蕉陋,在內(nèi)部編寫就可以解析

var str = '我是內(nèi)容';

?$(`<div>

?? ? ? ?? <div>

? ? ? ? ? ? ? <div>${ str }</div>

? ? ? ? ? </div>

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

2捐凭、使用after()和before()進(jìn)行兄弟元素的拼接,將后面的元素拼接在前面元素的上下

$('<h1>h1</h1>').appendTo('.container');? ? ? //在class名為container的div里創(chuàng)建h1

$('<h2>h2/<h2>').appendTo('.container');????? //在class名為container的div里創(chuàng)建h2


$('h2').before('<hr/>');??? //在h2前面添加橫線

$('h1').after('<hr/>');? ? ? //在h1后面添加橫線

3凳鬓、我們也可以使用insertAfter()和insertBefore()進(jìn)行兄弟元素拼接? 將前面的元素拼接在后面的元素上下

$('<hr/>').insertBefore('h2');???? //在h2前面添加橫線

$('<hr/>').insertAfter('h1'); ? ? ?? //在h1后面添加橫線

4茁肠、我們還有2個(gè)方法可以直接在父級(jí)所有的子集前面拼接元素

prepend()和prependTo()方法

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

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

二、替換DOM節(jié)點(diǎn)常用的操作:

1缩举、替換? 使用replaceWith或者replaceAll

先在頁面中添加4個(gè)h2

$('h2:eq(1)').replaceWith('<h1>標(biāo)題</h1>');???? //使用h1標(biāo)題替換第二個(gè)h2標(biāo)題

$('<h1>標(biāo)題</h1>').replaceAll('h2:eq(1)');

三垦梆、刪除dom節(jié)點(diǎn)匹颤,我們有兩種方式

1、清空元素以及元素內(nèi)容托猩,使用remove()印蓖;

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

2、清空標(biāo)簽內(nèi)所有內(nèi)容

如果使用jq同時(shí)創(chuàng)建了多層的標(biāo)簽結(jié)構(gòu)京腥,則返回值代表最外層

$(`<ul>

????? <li>li1</li>

????? <li>li2</li>

????? <li>li3</li>

</ul>`).appendTo('.container').empty(); ?? //清空標(biāo)簽內(nèi)所有內(nèi)容,但保留標(biāo)簽

四赦肃、復(fù)制節(jié)點(diǎn)

使用clone();

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

以上為一些jquery里DOM元素節(jié)點(diǎn)的增公浪、刪他宛、改、查的方法欠气,后期有新的堕汞、簡(jiǎn)潔的方法繼續(xù)更新。

五晃琳、操作節(jié)點(diǎn)屬性的一些方法

首先讯检,創(chuàng)建標(biāo)簽并拼接:

1、使用html()方法卫旱,獲取全部?jī)?nèi)容

div.html();? ??

div.html('<h1>我是h1</h1>');? ? ? //如果html()方法有參數(shù)人灼,則修改內(nèi)容

2、使用text()方法獲取文本內(nèi)容

div.text();

div.text('我是修改后的文字');? ? ? //text()有參數(shù)的情況和html()類似

3顾翼、val()方法是為了給表單元素的value屬性使用投放。有參則設(shè)置,無參則取值

$(':input').val('1234567890');???? //設(shè)置input標(biāo)簽的value值

console.log($('input').val()); ? ?? //獲取input標(biāo)簽的value值

4适贸、關(guān)于class的操作

添加class值

$('.container').addClass('c1').addClass('c2');???? //一個(gè)標(biāo)簽可以設(shè)置多個(gè)class值灸芳,一個(gè)class也可以給多個(gè)標(biāo)簽設(shè)置

移除class值

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

切換class值

$('.container').toggleClass('abc');???? //此方法多用于動(dòng)畫切換中,比如在點(diǎn)擊事件中添加此方法拜姿,當(dāng)觸發(fā)點(diǎn)擊事件烙样,先判斷有無此class值,若有則刪除蕊肥,若無則添加谒获,可以多次操作進(jìn)行切

5、attr()方法

首先創(chuàng)建一個(gè)a標(biāo)簽

$('.link').attr('href');? ? ? //如果attr方法只有一個(gè)參數(shù)壁却,為屬性名批狱,則獲取對(duì)應(yīng)的屬性值

$('.link').attr('href',"http://blog.lidaze.com");? ? ? //如果attr方法有2個(gè)參數(shù),分別為名稱值展东,為修改或添加屬性值

$('.link').attr({? ? ? //如果attr方法有一個(gè)參數(shù)赔硫,并且為對(duì)象,則可以同時(shí)添加或修改多個(gè)屬性與其對(duì)應(yīng)的值

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

title:'我是a標(biāo)簽'

});


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

6盐肃、css()方法

//css()方法和attr()方法使用幾乎一樣

//css()賦值標(biāo)簽的樣式

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

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

$('.link').css({

color: 'green',

'font-size': '30px'

});

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末爪膊,一起剝皮案震驚了整個(gè)濱河市向胡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惊完,老刑警劉巖僵芹,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異小槐,居然都是意外死亡拇派,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門凿跳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來件豌,“玉大人,你說我怎么就攤上這事控嗜〖胪” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵疆栏,是天一觀的道長(zhǎng)曾掂。 經(jīng)常有香客問我,道長(zhǎng)壁顶,這世上最難降的妖魔是什么珠洗? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮若专,結(jié)果婚禮上许蓖,老公的妹妹穿的比我還像新娘。我一直安慰自己调衰,他們只是感情好膊爪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嚎莉,像睡著了一般米酬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上萝喘,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天淮逻,我揣著相機(jī)與錄音琼懊,去河邊找鬼阁簸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛哼丈,可吹牛的內(nèi)容都是我干的启妹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼醉旦,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼饶米!你這毒婦竟也來了桨啃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤檬输,失蹤者是張志新(化名)和其女友劉穎照瘾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丧慈,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡析命,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逃默。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹃愤。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖完域,靈堂內(nèi)的尸體忽然破棺而出软吐,到底是詐尸還是另有隱情,我是刑警寧澤吟税,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布凹耙,位于F島的核電站,受9級(jí)特大地震影響肠仪,放射性物質(zhì)發(fā)生泄漏使兔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一藤韵、第九天 我趴在偏房一處隱蔽的房頂上張望虐沥。 院中可真熱鬧,春花似錦泽艘、人聲如沸欲险。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽天试。三九已至,卻和暖如春然低,著一層夾襖步出監(jiān)牢的瞬間喜每,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工雳攘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留带兜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓吨灭,卻偏偏與公主長(zhǎng)得像刚照,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子喧兄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案无畔? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評(píng)論 1 92
  • 請(qǐng)參看我github中的wiki啊楚,不定期更新。https://github.com/ivonzhang/Front...
    zhangivon閱讀 7,131評(píng)論 2 19
  • FreeCodeCamp - HTML5 and CSS 發(fā)現(xiàn)原來在另外一臺(tái)電腦學(xué) FreeCodeCamp 的時(shí)...
    付林恒閱讀 9,377評(píng)論 2 17
  • 就個(gè)人而言浑彰,自律是個(gè)人的規(guī)矩恭理;就家庭而言,家規(guī)是一家的規(guī)矩郭变;就一個(gè)公司而言蚯斯,公司制度是管理規(guī)矩;就一支軍隊(duì)而...
    十年一井閱讀 262評(píng)論 0 0
  • 現(xiàn)在我無所事事 現(xiàn)在我面對(duì)你靜坐 在這寧靜和幸福的閑暇中 來寫出生命的詩歌
    劉漢皇閱讀 193評(píng)論 0 2