jsclass怎麼用,js class用法

本文目錄一覽:

如何用js點擊class?

HTML DOM3提供了getElementsByClassName()方法用以根據類名獲取元素,但是IE9以下瀏覽器並不支持。考慮兼容性,可以採用如下思路:獲取元素,判斷className屬性是否為目標類名,是的話即添加onclick事件。

下面實例演示——點擊class為test1的a標籤彈出提示框:

1、HTML結構

div

a class=”test1″ href=”#”第一項/a

a class=”test2″ href=”#”第二項/a

/div

2、javascript代碼

window.onload = function(){

var a = document.getElementsByTagName(“a”);

for(i=0;ia.length;i++){

if(a[i].className == “test1”){

a[i].onclick = function(){alert(this.innerHTML+”被點擊了”)}

}

}

}

3、效果演示

如何在js中調用class的方法調用

function fun(){

var _this = this;

//如果函數是用var定義的私有函數,如下

var func1 = function(){ }

//那麼類中其他函數都可以直接通過func1()的形式調用

//如果函數是共有的,即用this定義,如下

this.func2 = function(){ }

/*則需要得到func對像的引用,即fun中的this(注意:是fun中的).

然而到了調用者函數(如下的caller)內部時,this指的是caller函數而不再是fun,所以可以考慮在fun中定義一個私有變量 var _this = this 來保證指向的是fun

*/

//例子:在this.caller中調用類中的其他函數

this.caller = function(){

func1();//私有函數直接調用

_this.func2();//公共函數,需要fun的this的指向

}

}

如何用javascript為元素添加class?

以給 body 標籤添加 class 為例

通過 jQuery

$( ‘body’).addClass( ‘class1 class2’ );

$( ‘body’ ).removeClass( ‘class1 class2’ );

支持 classList 的高級瀏覽器(IE10+,Chrome,Firefox,Safari)

document.body.classList.add( ‘class1’, ‘class2’ );

document.body.classList.remove( ‘class1’, ‘class2’ );

不支持 classList 的瀏覽器只能通過 className 來添加

document.body.className += ‘ cl

[1]直接把樣式賦值給className

var odiv=document.getElementById(‘div1’);

odiv.className= div3

//這樣我們會得到 class =”div3″ 會直接把div2樣式給覆蓋掉;

[2]使用累加賦值給className

var odiv=document.getElementById(‘div1’);

odiv.className+=” “+div3  //樣式和樣式之間需要空隙 ,所以加個空字符串隔開

//這樣可以得到 class=”div2 div3″ 可以正常增加,但是我們在添加樣式的時候我們得考慮下他本身之前有沒有同名的樣式,如果有我們添加的話就會變成累贅 比如class=”div2 div3 div3″;

[3]檢測樣式原先之前是否有相同的樣式

var odiv=document.getElementById(‘div1’); 

function hasClass(element,csName){

element.className.match(RegExp(‘(\\s|^)’+csName+'(\\s|$)’)); //使用正則檢測是否有相同的樣式

}

[4]在[3]的基礎上我們就可以進行判斷性給元素添加樣式了 

var odiv=document.getElementById(‘div1’); 

function hasClass(element,csName){

return  element.className.match(RegExp(‘(\\s|^)’+csName+'(\\s|$)’)); //使用正則檢測是否有相同的樣式

} 

function addClass(element,csName){

if(!hasClass(element,csName)){

element.className+=’ ‘+csName;

js 如何控制class?

script type=”text/javascript”

window.onload = function() {

var abcs = document.getElementsByClassName(“abc”);

for(var i = 0; i abcs.length; i++) {

abcs[i].style.width = “50%”;

}

};

/script

注意:上面的代碼不支持 IE 6/7,因為 IE 6/7 不支持 getElementsByClassName。

下面的代碼支持 IE 6/7,使用 getElementsByTagName 查找 div,再查找 abc

script type=”text/javascript”

window.onload = function() {

var divs = document.getElementsByTagName(“div”);

for(var i = 0; i divs.length; i++) {

var classes = divs[i].className.split(” “);

for(var a = 0; a classes.length; a++) {

if(classes[a] === “abc”) {

divs[i].style.width = “50%”;

break;

}

}

}

};

/script

淺析js class

在 ES6 規範中,引入了 class 的概念。使得 JS 開發者終於告別了,直接使用原型對象模仿面向對象中的類和類繼承時代。

但是JS 中並沒有一個真正的 class 原始類型, class 僅僅只是對原型對象運用語法糖。所以,只有理解如何使用原型對象實現類和類繼承,才能真正地用好 class。

本質上js中class其實是構造函數的另一種寫法,使之更加直觀的展現構造器中的各項屬性

基本使用

注意點:

(1)constructor是一個構造函數方法,創建對象時自動調用該方法

(2)constructor是類必須的一個屬性,少了他類的創建會報錯,如果我們不寫的話js會給他自動加上

(3)this指的是實例化對象,就相當於構造函數中的this,指向的是當前創建的對象

(4)類中聲明函數不需要function關鍵字,直接函數名即可

(5)方法之間不需要都好分割,加了會報錯

因為本質上是構造函數的另一種寫法,所以他的使用和一些其他特性都是和構造函數相似的。比如調用都是通過new關鍵字 並且class也存在prototype這個屬性,通過她我們可以給這個類的原型對象定義屬性。通過這個類創建出的對象一樣會有這個屬性

類的繼承

子類繼承基類後,同名的屬性會覆蓋掉基類,以上例子中兩個類都有sayName函數,但是調用的時候輸出的是子類的sayName。

一個構造函數可以使用 super 關鍵字來調用一個父類的構造函數。

同時類也支持get和set操作

js 怎麼通過class改變樣式

js通過class改變樣式,可以使用Dom的className屬性設置元素的樣式。完整示例代碼如下:

!DOCTYPE html

html

head

meta charset=”utf-8″

title測試頁面/title

style type=”text/css”

.themeCls {

color: #000;

background-color: #f60;

line-height: 25px;

}

/style

/head

body style=”background-color:#ccc;”

span id=”theme”這是一段測試文本br /用來測試js通過class改變樣式/span

script type=”text/javascript”

var domTheme = document.getElementById(“theme”);

theme.className = “themeCls”;

/script

/body

/html

具體操作步驟如下:

1、新建一個html文件,命名為t.html。

2、打開t.html。

3、在t.html中寫入html結構代碼,其中設置需要添加class類的元素的ID為「theme」。代碼如下:

!DOCTYPE html

html

head

meta charset=”utf-8″

title測試頁面/title

/head

body style=”background-color:#ccc;”

span id=”theme”這是一段測試文本br /用來測試js通過class改變樣式/span

/body

/html

4、設置一個css類,命名為」themeCls」,用於在javascript操作時給元素添加clsss。」themeCls」類為了方便觀察效果,設置css規則為字體顏色為黑色#000,背景為橙色#f60,行高為25像素。代碼如下:

style type=”text/css”

.themeCls {

color: #000;

background-color: #f60;

line-height: 25px;

}

/style

5、編寫javascript代碼,獲取ID為「theme」的元素並設置元素的class類為「themeCls」,代碼如下:

script type=”text/javascript”

var domTheme = document.getElementById(“theme”);

domTheme .className = “themeCls”;

/script

6、打開瀏覽器,瀏覽t.html頁面,發現頁面中」這是一段測試文本用來測試js通過class改變樣式」這一段文本字體顏色呈現黑色,背景呈現橙色,說明我們為元素添加class類「themeCls」成功了。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/254971.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:14
下一篇 2024-12-15 12:14

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Idea新建文件夾沒有java class的解決方法

    如果你在Idea中新建了一個文件夾,卻沒有Java Class,應該如何解決呢?下面從多個方面來進行解答。 一、檢查Idea設置 首先,我們應該檢查Idea的設置是否正確。打開Id…

    編程 2025-04-29
  • Python Class括號中的參數用法介紹

    本文將對Python中類的括號中的參數進行詳細解析,以幫助初學者熟悉和掌握類的創建以及參數設置。 一、Class的基本定義 在Python中,通過使用關鍵字class來定義類。類包…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • 如何使用JS調用Python腳本

    本文將詳細介紹通過JS調用Python腳本的方法,包括使用Node.js、Python shell、child_process等三種方法,以及在Web應用中的應用。 一、使用Nod…

    編程 2025-04-27
  • 如何反混淆美團slider.js

    本文將從多個方面詳細闡述如何反混淆美團slider.js。在開始之前,需要明確的是,混淆是一種保護JavaScript代碼的方法,其目的是使代碼難以理解和修改。因此,在進行反混淆操…

    編程 2025-04-27
  • Python要學JS嗎?

    Python和JavaScript都是非常受歡迎的編程語言。然而,你可能會問,既然我已經學了Python,是不是也需要學一下JS呢?在本文中,我們將圍繞這個問題進行討論,並從多個角…

    編程 2025-04-27

發表回復

登錄後才能評論