jQuery DOM/屬性/CSS操作

来源:https://www.cnblogs.com/evenyao/archive/2018/08/12/9462689.html
-Advertisement-
Play Games

jQuery DOM 操作 創建元素 只需要把DOM字元串傳入$方法即可返回一個 jQuery 對象 添加元素 .append() 在 a 標簽裡面添加內容是b的p標簽 JSBin 其他例子 .appendTo() 相反,把對象插入到目標元素尾部。即在 a 標簽 裡面添加內容是b的p標簽 JSBin ...


jQuery DOM 操作

創建元素

只需要把DOM字元串傳入$方法即可返回一個 jQuery 對象

var obj = $('<div class="test"><p><span>Done</span></p></div>')

 

添加元素

.append()

在 a 標簽裡面添加內容是b的p標簽

$( "a" ).append( "<p>b</p>" )

JSBin

其他例子

$( ".inner" ).append( "<p>Test</p>" )
$( "p" ).append( "<strong>Hello</strong>" )
$( "p" ).append( $( "strong" ) )

.appendTo()

相反,把對象插入到目標元素尾部。
即在 a 標簽 裡面添加內容是b的p標簽

$( "<p>b</p>" ).appendTo( "a" )

JSBin

.prepend()

向對象頭部追加內容,用法和append類似,內容添加到最開始

$( ".inner" ).prepend( "<p>Test</p>" )

.prependTo()

也是相反,把對象插入到目標元素頭部。用法和prepend類似

$( "<p>Test</p>" ).prependTo( ".inner" )

 

.before()

在對象前面(不是頭部,而是外面,相當於插入進來變成鄰居)插入內容。傳遞參數和append類似

$( ".inner" ).before( "<p>Test</p>" )

JSBin

.insertBefore()

相反,把<p>Test</p>對象插入到.inner之前(同樣不是頭部,是同級)

$( "<p>Test</p>" ).insertBefore( ".inner" )

JSBin

.after()

before相反,在對象後面(不是尾部,而是外面,和對象併列同級)插入內容。參數傳遞和append類似

$( ".inner" ).after( "<p>Test</p>" )

JSBin

..insertAfter()

<p>Test</p>插入到.inner之後,同前面的.insertBefore用法

$( "<p>Test</p>" ).insertAfter( ".inner" )

JSBin

刪除元素

.remove()

刪除被選元素(及其子元素)

$("#div1").remove();

JSBin

也可以添加一個可選的選擇器參數來過濾匹配的元素

$('div').remove('.test')

JSBin

.empty()

清空被選擇元素內所有子元素

$('body').empty()

 

.detach()

.detach() 和.remove()一樣,但 .detach()保存所有 jQuery 數據和被移走的元素相關聯。
當需要移走一個元素,不久又將該元素插入DOM時,這種方法很有用。

包裹元素

.wrap()

為每個對象包裹一層HTML結構

<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">World</div>
</div>

使用包裹元素

$( ".inner" ).wrap( "<div class='new'></div>" )

查看結果

<div class="container">
  <div class="new">
    <div class="inner">Hello</div>
  </div>
  <div class="new">
    <div class="inner">World</div>
  </div>
</div>

 

.wrapAll()

把所有匹配對象包裹在同一個HTML結構中

<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">World</div>
</div>

包裹元素

$( ".inner" ).wrapAll( "<div class='new' />")

查看結果

<div class="container">
   <div class="new">
      <div class="inner">Hello</div>
      <div class="inner">World</div>
   </div>
</div>

 

.wrapInner()

把匹配對象裡層包裹一個HTML結構

<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">World</div>
</div>

包裹元素

$( ".inner" ).wrapInner( "<div class='new'></div>")

查看結果

<div class="container">
  <div class="inner">
    <div class="new">Hello</div>
  </div>
  <div class="inner">
    <div class="new">World</div>
  </div>
</div>

 

.unwrap()

把DOM元素的parent移除,但保留HTML內容。

關於 Text 和 Html

.html()

這是一個讀寫兩用的方法,用於獲取/修改元素的innerHTML

  • 當沒有傳遞參數的時候,返回元素的innerHTML
  • 當傳遞了一個string參數的時候,修改元素的innerHTML為參數值

範例

$('div').html()

$('div').html('123')

JSBin output

 

 



 

.text()

.html()類似,操作的是對應原生DOM裡面的innerText

$('div').text()
$('div').text('123')

JSBin output

 

原生JS操作DOM回顧

.html() 和 .text() 的區別

即和原生DOM操作中innerHTMLinnerText的區別類似

innerHTML屬性作用和innerText類似,但是不是返回元素的文本內容,而是返回元素的HTML結構
innerText是一個可寫屬性,返回元素內包含的文本內容,在多層次的時候會按照元素由淺到深的順序拼接其內容。

innerHTML容易產生安全問題,即 xss 攻擊。

 

jQuery 屬性/CSS操作

屬性相關

.val()

是一個讀寫雙用的方法,用來處理inputvalue,當方法沒有參數的時候返回inputvalue值,當傳遞了一個參數的時候,方法修改inputvalue值為參數值

$('input').val()

$('input').val('newValue')

 

.attr()

獲取元素特定屬性的值

$( "em" ).attr( "title" )   //獲取em標簽的titile屬性值

為元素屬性賦值

$( "#greatphoto" ).attr({
  alt: "Beijing Brush Seller",
  title: "photo by Kelly Clark"
});

 

.removeAttr()

為匹配的元素集合中的元素移除一個屬性(attribute)

$('div').removeAttr('id')  //移除div標簽的id屬性

.removeAttr()方法使用原生的 JavaScript removeAttribute()函數,但是它的優點是可以直接在一個 jQuery 對象上調用該方法,並且它解決了跨瀏覽器的屬性名不同的問題。

.prop() / .removeProp()

這兩個方法是用來操作元素的property的,propertyattibute是非常相似的概念,詳情參考 jQuery的 attr 與 prop

CSS 操作

.css()

.css(propertyName) / .css(propertyNames)

使用和attr相似,用來處理元素的css
獲取元素style特定property的值

var color = $( this ).css( "background-color" )

var styleProps = $( this ).css([
  "width",
  "height",
  "color",
  "background-color"
])

.css(propertyName,value)

設置元素style特定property的值

$( this ).css( "background-color", "yellow" )

$( this ).css({
  "background-color": "yellow",  //有中橫線的也可以使用駝峰命名法,但不能在外層加""
  "font-weight": "bolder"
})

 

.addClass() / .removeClass()

.addClass()

為元素添加class,不是覆蓋原class,是追加,也不會檢查重覆

$( "p" ).addClass( "active" )   //給p標簽添加active css樣式

.removeClass()

移除元素單個/多個/所有class

$( "p" ).removeClass( "active" )   //給p標簽移除active css樣式

 

.hasClass()

檢查元素是否包含某個class,返回true / false

$( "#mydiv" ).hasClass( "active" )  //檢查id為mydiv的元素是否包含active css樣式

 

.toggleClass()

toggle是切換的意思,方法用於切換

<div class="test">hello world</div>

第一次執行

$( "div.test" ).toggleClass( "new" )

<div class="test new">hello world</div>

第二次執行

$( "div.test" ).toggleClass( "new" )
<div class="test">hello world</div>

 

使用案例

利用 jQuery 屬性 CSS操作 實現閃爍效果 Demo

實現播放器ICON按鈕切換效果
方法1
方法2


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這裡通過自己手動的方式“做”一個jQuery來使用,需要5步 1. 訪問 https://jquery.com 2. 點擊download 3. 拉到最下方,點擊 JQuery CDN 4. 得到所有版本jQuery,其中uncompressed(未壓縮),minified(壓縮) 5. 選擇需要的 ...
  • 稍稍總結了下css文本的一些屬性用法,自己忘記的時候也可以用來查查,不用去查網站那麼麻煩。 下麵是部分總結,也希望對其他人有用 文本修飾 (1)text-decoration: 文本修飾(橫線) 4個屬性值 overline line-through underline blink (1)overl ...
  • 結果如下:顯示一個向左滑動的相冊[來回滾動] ...
  • 最近學習了VUE,自己為了學習做了個小小的博客,功能很簡單,不過開發過程中也遇到了很多坑,所以記錄下來方便以後使用。歡迎大家交流學習。 ...
  • 今天在github 上看到一個非常巧妙的項目:umpox/TinyEditor 使用簡單的瀏覽器就能構造一個簡單的實時運行代碼的基於瀏覽器的前端編輯器,只需要很少代碼; 使用方法: 粘貼如下代碼到瀏覽器地址欄,(我測試了Chrome), 即可得到這樣一個好用的編輯器。 我們分析下其代碼: 其構造了三 ...
  • 原文鏈接:https://bbs.huaweicloud.com/blogs/53c0c3509b7a11e89fc57ca23e93a89f 我坦白我是標題黨,SB只是 的簡寫。 一. SASS/SCSS ,也稱為 ,是CSS預編譯語言的一種,常見的預編譯語言還包括 ,`Stylus 變數定義 函 ...
  • jQuery 常用核心方法 .each() 遍歷一個jQuery對象,為每個匹配元素執行一個函數 $.extend() jQuery.extend([deep,] target [, object1 ] [, objectN ] )把多個對象進行合併,把所有的屬性添加到第一個對象上 當我們提供兩個或 ...
  • 區別 jQuery 選擇器得到的 jQuery對象 和 原生JS 中的document.getElementById() document.querySelector取得的 DOM對象 是兩種不同類型,兩者是不等價的。jQuery 無法使用 原生DOM對象的方法,原生DOM對象 也不能使用 jQue ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...