亚洲av午夜福利精品一区人妖,亚洲乱码日产精品a级毛片久久,91精品视频观看,青草青草久热精品视频在线观看

從零開(kāi)始學(xué)習(xí)jQuery (四) 使用jQuery操作元素的屬性與樣式

轉(zhuǎn)載藍(lán)藍(lán)設(shè)計(jì)(   m.skdbbs.com  )是一家專注而深入的設(shè)計(jì)機(jī)構(gòu) ,為期望卓越的國(guó)內(nèi)外企業(yè)提供有效的   BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、  ipad界面設(shè)計(jì)   、  包裝設(shè)計(jì) 、  圖標(biāo)定制 、  用戶體驗(yàn) 、交互設(shè)計(jì)、   網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)

來(lái)源:http://www.cnblogs.com/zhangziqiu/archive/2009/05/05/jQuery-Learn-4.html

如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中,   請(qǐng)點(diǎn)這里

一.摘要

本篇文章講解如何使用jQuery獲取和操作元素的屬性和CSS樣式. 其中DOM屬性和元素屬性的區(qū)分值得大家學(xué)習(xí).

 

二.前言

通過(guò)前面幾章我們已經(jīng)能夠完全控制jQuery包裝集了,  無(wú)論是通過(guò)選擇器選取對(duì)象, 或者從包裝集中刪除,過(guò)濾元素. 本章將講解如何使用jQuery獲取和修改元素屬性和樣式.

 

三. 區(qū)分DOM屬性和元素屬性

一個(gè)img標(biāo)簽:

<img src="images/image.1.jpg" id="hibiscus" alt="Hibiscus" class="classA" />


 

通常開(kāi)發(fā)人員習(xí)慣將id, src, alt等叫做這個(gè)元素的"屬性". 我將其稱為"元素屬性". 但是在解析成DOM對(duì)象時(shí), 實(shí)際瀏覽器最后會(huì)將標(biāo)簽元素解析成"DOM對(duì)象", 并且將元素的"元素屬性"存儲(chǔ)為"DOM屬性". 兩者是有區(qū)別的. 
雖然我們?cè)O(shè)置了元素的src是相對(duì)路徑:images/image.1.jpg 
但是在"DOM屬性"中都會(huì)轉(zhuǎn)換成絕對(duì)路徑:http://localhost/images/image.1.jpg.

甚至有些"元素屬性"和"DOM屬性"的名稱都不一樣,比如上面的元素屬性class, 轉(zhuǎn)換為DOM屬性后對(duì)應(yīng)className.

牢記, 在javascript中我們可以直接獲取或設(shè)置"DOM屬性":

    <script type="text/javascript">         $(function() {
            var img1 = document.getElementById("hibiscus");
            alert(img1.alt);
            img1.alt = "Change the alt element attribute";
            alert(img1.alt);
        })
    </script>


所以如果要設(shè)置元素的CSS樣式類, 要使用的是"DOM屬性"className"而不是"元素屬性"class:

img1.className = "classB";


四. 操作"DOM屬性"

在jQuery中沒(méi)有包裝操作"DOM屬性"的函數(shù), 因?yàn)槭褂胘avascript獲取和設(shè)置"DOM屬性"都很簡(jiǎn)單. 在jQuery提供了each()函數(shù)用于遍歷jQuery包裝集, 其中的this指針是一個(gè)DOM對(duì)象, 所以我們可以應(yīng)用這一點(diǎn)配合原生javascript來(lái)操作元素的DOM屬性:

            $("img").each(function(index) {
                alert("index:" + index + ", id:" + this.id + ", alt:" + this.alt);
                this.alt = "changed";
                alert("index:" + index + ", id:" + this.id + ", alt:" + this.alt);
            });

下面是each函數(shù)的說(shuō)明:

each( callback )  Returns: jQuery包裝集

對(duì)包裝集中的每一個(gè)元素執(zhí)行callback方法. 其中callback方法接受一個(gè)參數(shù), 表示當(dāng)前遍歷的索引值,從0開(kāi)始.

 

五. 操作"元素屬性"

我們可以使用javascript中的getAttribute和setAttribute來(lái)操作元素的"元素屬性".

在jQuery中給你提供了attr()包裝集函數(shù), 能夠同時(shí)操作包裝集中所有元素的屬性:

名稱 說(shuō)明 舉例

attr( name )

取得第一個(gè)匹配元素的屬性值。通過(guò)這個(gè)方法可以方便地從第一個(gè)匹配元素中獲取一個(gè)屬性的值。如果元素沒(méi)有相應(yīng)屬性,則返回 undefined 。 返回文檔中第一個(gè)圖像的src屬性值: 
$("img").attr("src");
attr( properties )

將一個(gè)“名/值”形式的對(duì)象設(shè)置為所有匹配元素的屬性。

這是一種在所有匹配元素中批量設(shè)置很多屬性的最佳方式。 注意,如果你要設(shè)置對(duì)象的class屬性,你必須使用'className' 作為屬性名。或者你可以直接使用.addClass( class ) 和 .removeClass( class ).

為所有圖像設(shè)置src和alt屬性: 
$("img").attr({ src: "test.jpg", alt: "Test Image" });
attr( key, value ) 為所有匹配的元素設(shè)置一個(gè)屬性值。 為所有圖像設(shè)置src屬性: 
$("img").attr("src","test.jpg");
attr( key, fn )

為所有匹配的元素設(shè)置一個(gè)計(jì)算的屬性值。

不提供值,而是提供一個(gè)函數(shù),由這個(gè)函數(shù)計(jì)算的值作為屬性值。

把src屬性的值設(shè)置為title屬性的值: 
$("img").attr("title", function() { return this.src });
removeAttr( name ) 從每一個(gè)匹配的元素中刪除一個(gè)屬性 將文檔中圖像的src屬性刪除: 
$("img").removeAttr("src"); 

 

當(dāng)使用id選擇器時(shí)常常返回只有一個(gè)對(duì)象的jQuery包裝集, 這個(gè)時(shí)侯常使用attr(name)函數(shù)獲得它的元素屬性:

function testAttr1(event) {
   alert($("#hibiscus").attr("class"));
}


注意attr(name)函數(shù)只返回第一個(gè)匹配元素的特定元素屬性值. 而attr(key, name)會(huì)設(shè)置所有包裝集中的元素屬性:

//修改所有img元素的alt屬性 $("img").attr("alt", "修改后的alt屬性");


 attr( properties ) 可以一次修改多個(gè)元素屬性:

$("img").attr({title:"修改后的title", alt: "同時(shí)修改alt屬性"});


另外雖然我們可以使用 removeAttr( name ) 刪除元素屬性, 但是對(duì)應(yīng)的DOM屬性是不會(huì)被刪除的, 只會(huì)影響DOM屬性的值.

比如將一個(gè)input元素的readonly元素屬性去掉,會(huì)導(dǎo)致對(duì)應(yīng)的DOM屬性變成false(即input變成可編輯狀態(tài)):

$("#inputTest").removeAttr("readonly");

 

六,修改CSS樣式

修改元素的樣式, 我們可以修改元素CSS類或者直接修改元素的樣式.

一個(gè)元素可以應(yīng)用多個(gè)css類, 但是不幸的是在DOM屬性中是用一個(gè)以空格分割的字符串存儲(chǔ)的, 而不是數(shù)組. 所以如果在原始javascript時(shí)代我們想對(duì)元素添加或者刪除多個(gè)屬性時(shí), 都要自己操作字符串.

jQuery讓這一切變得異常簡(jiǎn)單. 我們?cè)僖膊挥米瞿切o(wú)聊的工作了.

1. 修改CSS類

下表是修改CSS類相關(guān)的jQuery方法:

名稱 說(shuō)明 實(shí)例

addClass( classes )

為每個(gè)匹配的元素添加指定的類名。 為匹配的元素加上 'selected' 類: 
$("p").addClass("selected");
hasClass( class ) 判斷包裝集中是否至少有一個(gè)元素應(yīng)用了指定的CSS類
$("p").hasClass("selected");
removeClass( [classes] ) 從所有匹配的元素中刪除全部或者指定的類。 從匹配的元素中刪除 'selected' 類: 
$("p").removeClass("selected");
toggleClass( class ) 如果存在(不存在)就刪除(添加)一個(gè)類。 為匹配的元素切換 'selected' 類: 
$("p").toggleClass("selected");
toggleClass( class, switch ) 當(dāng)switch是true時(shí)添加類, 
當(dāng)switch是false時(shí)刪除類

每三次點(diǎn)擊切換高亮樣式: 
var count = 0; 
$("p").click(function(){ 
  $(this).toggleClass("highlight", count++ % 3 == 0); 
});

 

使用上面的方法, 我們可以將元素的CSS類像集合一樣修改, 再也不必手工解析字符串.

注意  addClass( class ) removeClass( [classes] ) 的參數(shù)可以一次傳入多個(gè)css類, 用空格分割,比如:

$("#btnAdd").bind("click", function(event) { $("p").addClass("colorRed borderBlue"); });


removeClass方法的參數(shù)可選, 如果不傳入?yún)?shù)則移除全部CSS類:

 $("p").removeClass()

 

2. 修改CSS樣式

同樣當(dāng)我們想要修改元素的具體某一個(gè)CSS樣式,即修改元素屬性"style"時(shí),  jQuery也提供了相應(yīng)的方法:

名稱 說(shuō)明 實(shí)例
css( name ) 訪問(wèn)第一個(gè)匹配元素的樣式屬性。 取得第一個(gè)段落的color樣式屬性的值: 

$("p").css("color");

css( properties )

把一個(gè)“名/值對(duì)”對(duì)象設(shè)置為所有匹配元素的樣式屬性。

這是一種在所有匹配的元素上設(shè)置大量樣式屬性的最佳方式。

將所有段落的字體顏色設(shè)為紅色并且背景為藍(lán)色: 
$("p").css({ color: "#ff0011", background: "blue" }); 

css( name, value )

在所有匹配的元素中,設(shè)置一個(gè)樣式屬性的值。

數(shù)字將自動(dòng)轉(zhuǎn)化為像素值

將所有段落字體設(shè)為紅色: 

$("p").css("color","red");

 

七.獲取常用屬性

雖然我們可以通過(guò)獲取屬性,特性以及CSS樣式來(lái)取得元素的幾乎所有信息,  但是注意下面的實(shí)驗(yàn):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <title>獲取對(duì)象寬度</title>     <script type="text/javascript" src="scripts/jquery-1.3.2-vsdoc2.js"></script>     <script type="text/javascript">
        $(function()
        {
            alert("attr(\"width\"):" + $("#testDiv").attr("width")); //undifined             alert("css(\"width\"):" + $("#testDiv").css("width")); //auto(ie6) 或 1264px(ff)             alert("width():" + $("#testDiv").width()); //正確的數(shù)值1264             alert("style.width:" +  $("#testDiv")[0].style.width ); //空值         })
    </script> </head> <body>     <div id="testDiv">         測(cè)試文本</div> </body> </html>


我們希望獲取測(cè)試圖層的寬度,  使用attr方法獲取"元素特性"為undifined, 因?yàn)椴](méi)有為div添加width. 而使用css()方法雖然可以獲取到style屬性的值, 但是在不同瀏覽器里返回的結(jié)果不同, IE6下返回auto, 而FF下雖然返回了正確的數(shù)值但是后面帶有"px". 所以jQuery提供了width()方法, 此方法返回的是正確的不帶px的數(shù)值.

針對(duì)上面的問(wèn)題, jQuery為常用的屬性提供了獲取和設(shè)置的方法, 比如width()用戶獲取元素的寬度, 而 width(val)用來(lái)設(shè)置元素寬度.

下面這些方法可以用來(lái)獲取元素的常用屬性值:

1.寬和高相關(guān) Height and Width

名稱 說(shuō)明 舉例
height( ) 取得第一個(gè)匹配元素當(dāng)前計(jì)算的高度值(px)。 獲取第一段的高: 
$("p").height();
height( val ) 為每個(gè)匹配的元素設(shè)置CSS高度(hidth)屬性的值。如果沒(méi)有明確指定單位(如:em或%),使用px。 把所有段落的高設(shè)為 20: 

$("p").height(20);

width( ) 取得第一個(gè)匹配元素當(dāng)前計(jì)算的寬度值(px)。 獲取第一段的寬: 
$("p").width();
width( val )

為每個(gè)匹配的元素設(shè)置CSS寬度(width)屬性的值。

如果沒(méi)有明確指定單位(如:em或%),使用px。

將所有段落的寬設(shè)為 20: 

$("p").width(20);

innerHeight( )

獲取第一個(gè)匹配元素內(nèi)部區(qū)域高度(包括補(bǔ)白、不包括邊框)。 
此方法對(duì)可見(jiàn)和隱藏元素均有效。

見(jiàn)最后示例
innerWidth( )

獲取第一個(gè)匹配元素內(nèi)部區(qū)域?qū)挾龋òㄑa(bǔ)白、不包括邊框)。 
此方法對(duì)可見(jiàn)和隱藏元素均有效。

見(jiàn)最后示例
outerHeight( [margin] )

獲取第一個(gè)匹配元素外部高度(默認(rèn)包括補(bǔ)白和邊框)。 
此方法對(duì)可見(jiàn)和隱藏元素均有效。

見(jiàn)最后示例
outerWidth( [margin] )

獲取第一個(gè)匹配元素外部寬度(默認(rèn)包括補(bǔ)白和邊框)。 
此方法對(duì)可見(jiàn)和隱藏元素均有效。

見(jiàn)最后示例

 

關(guān)于在獲取長(zhǎng)寬的函數(shù)中, 要區(qū)別"inner", "outer"和height/width這三種函數(shù)的區(qū)別:

image

outerWith可以接受一個(gè)bool值參數(shù)表示是否計(jì)算margin值.

相信此圖一目了然各個(gè)函數(shù)所索取的范圍. 圖片以width為例說(shuō)明的, height的各個(gè)函數(shù)同理.  

2.位置相關(guān) Positioning

另外在一些設(shè)計(jì)套彈出對(duì)象的腳本中,常常需要?jiǎng)討B(tài)獲取彈出坐標(biāo)并且設(shè)置元素的位置.

但是很多的計(jì)算位置的方法存在著瀏覽器兼容性問(wèn)題,  jQuery中為我們提供了位置相關(guān)的各個(gè)函數(shù):

名稱 說(shuō)明 舉例
offset( )

獲取匹配元素在當(dāng)前窗口的相對(duì)偏移。

返回的對(duì)象包含兩個(gè)整形屬性:top 和 left。此方法只對(duì)可見(jiàn)元素有效。

獲取第二段的偏移: 
var p = $("p:last"); 
var offset = p.offset(); 
p.html( "left: " + offset.left + ", top: " + offset.top );
position( )

獲取匹配元素相對(duì)父元素的偏移。

返回的對(duì)象包含兩個(gè)整形屬性:top 和 left。為計(jì)算結(jié)果,請(qǐng)?jiān)谘a(bǔ)白、邊框和填充屬性上使用像素單位。此方法只對(duì)可見(jiàn)元素有效。

獲取第一段的偏移: 
var p = $("p:first"); 
var position = p.position(); 
$("p:last").html( "left: " + position.left + ", top: " + position.top );
scrollTop( )

獲取匹配元素相對(duì)滾動(dòng)條頂部的偏移。

此方法對(duì)可見(jiàn)和隱藏元素均有效。

獲取第一段相對(duì)滾動(dòng)條頂部的偏移: 
var p = $("p:first"); 
$("p:last").text( "scrollTop:" + p.scrollTop() );
scrollTop( val )

傳遞參數(shù)值時(shí),設(shè)置垂直滾動(dòng)條頂部偏移為該值。

此方法對(duì)可見(jiàn)和隱藏元素均有效。

設(shè)定垂直滾動(dòng)條值: 
$("div.demo").scrollTop(300);
scrollLeft( )

獲取匹配元素相對(duì)滾動(dòng)條左側(cè)的偏移。

此方法對(duì)可見(jiàn)和隱藏元素均有效。

獲取第一段相對(duì)滾動(dòng)條左側(cè)的偏移: 
var p = $("p:first"); 
$("p:last").text( "scrollLeft:" + p.scrollLeft() );
scrollLeft( val )

傳遞參數(shù)值時(shí),設(shè)置水平滾動(dòng)條左側(cè)偏移為該值。

此方法對(duì)可見(jiàn)和隱藏元素均有效。

設(shè)置相對(duì)滾動(dòng)條左側(cè)的偏移: 
$("div.demo").scrollLeft(300);

 

八.總結(jié)

本篇文章主要講解如何使用jQuery操作元素的屬性和修改樣式. 請(qǐng)大家主要注意元素屬性和DOM屬性的區(qū)別. 下一篇文章將講解最重要的事件, 介紹如何綁定事件, 操作事件對(duì)象等.

 

 

出品公司:

藍(lán)藍(lán)設(shè)計(jì)(北京蘭亭妙微科技有限公司)是一家專注而深入的設(shè)計(jì)機(jī)構(gòu) ,為期望卓越的國(guó)內(nèi)外企業(yè)提供有效的視覺(jué)設(shè)計(jì)、ui界面設(shè)計(jì)、網(wǎng)站建設(shè)、用戶體驗(yàn)服務(wù),涉及互聯(lián)網(wǎng)、IT軟件、電子、銀行、保健品等多個(gè)行業(yè),并建立了良好的口碑,積累了豐富的經(jīng)驗(yàn)。 
全國(guó)統(tǒng)一服務(wù)熱線  400-608-6026  QQ:896757335

日歷

鏈接

個(gè)人資料

存檔

亚洲av午夜福利精品一区人妖,亚洲乱码日产精品a级毛片久久,91精品视频观看,青草青草久热精品视频在线观看
<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 久久久精品国产一区二区三区 | 久久国产精品第一页| 亚洲精品日韩综合观看成人91| 樱桃国产成人精品视频| 在线不卡a资源高清| 亚洲电影免费观看高清完整版在线| 在线观看日韩一区| 亚洲激情视频网站| 亚洲美女中文字幕| 这里是久久伊人| 亚洲欧美日韩中文播放| 欧美自拍偷拍| 久久综合激情| 欧美福利一区二区三区| 欧美日本一道本| 国产精品久久久久久久7电影 | 欧美视频一区二区在线观看| 欧美系列电影免费观看| 国产欧美一区二区三区在线看蜜臀| 国产一区久久| 亚洲国产精品久久久| 99热这里只有成人精品国产| 亚洲午夜日本在线观看| 久久高清免费观看| 免费欧美在线视频| 欧美三日本三级少妇三2023| 国产欧美日韩一区二区三区在线 | 最新高清无码专区| 在线亚洲电影| 欧美一区二区日韩一区二区| 久久久国产一区二区三区| 欧美高清在线播放| 国产精品久久久久久久久| 国产亚洲福利一区| 亚洲欧洲精品一区二区精品久久久| 99精品视频免费全部在线| 亚洲免费在线视频| 久久中文欧美| 国产精品av免费在线观看 | 136国产福利精品导航网址| 亚洲人成亚洲人成在线观看图片| 在线亚洲免费| 久久九九国产精品| 欧美人妖在线观看| 国产无一区二区| 亚洲精品乱码久久久久| 亚洲欧美一区二区在线观看| 久久一区二区三区四区| 欧美日韩一级黄| 国产一区二区三区久久久久久久久| 精品福利免费观看| 在线亚洲美日韩| 久久久久欧美精品| 欧美日韩一区二区三区四区五区| 国产日韩欧美中文| 亚洲美女色禁图| 久久精品二区亚洲w码| 欧美日韩精品一区二区三区| 国产一区二区三区在线观看免费视频 | 亚洲综合首页| 麻豆精品视频| 国产精品久久毛片a| 1000精品久久久久久久久| 亚洲综合欧美日韩| 欧美黄色aa电影| 国产有码在线一区二区视频| 99亚洲视频| 久久综合色88| 国产欧美一区二区精品性| 亚洲每日更新| 久久综合狠狠综合久久综合88| 国产精品国产三级国产普通话蜜臀 | 亚洲一区在线免费| 欧美成人有码| 国产在线视频欧美| 亚洲性xxxx| 欧美激情综合色| 一区二区亚洲精品国产| 亚洲欧美日韩在线高清直播| 欧美日韩国产在线播放网站| 在线观看久久av| 久久aⅴ国产欧美74aaa| 欧美午夜精品久久久久久浪潮| 亚洲国产成人av好男人在线观看| 性欧美18~19sex高清播放| 欧美日韩国语| 亚洲国产精品一区二区www在线| 欧美一区二区三区视频| 国产精品久久99| 日韩天堂在线观看| 欧美激情国产日韩精品一区18| 国内揄拍国内精品久久| 亚洲影院在线| 欧美色播在线播放| 99av国产精品欲麻豆| 欧美xx视频| 亚洲第一福利视频| 久久久久久久999| 国产一区久久| 久久av一区| 韩国在线视频一区| 欧美一区二区三区视频在线观看 | 免费短视频成人日韩| 狠狠色综合网| 久久久久久999| 国产在线精品一区二区中文| 欧美一区免费视频| 国产视频自拍一区| 欧美一区二区三区视频在线| 国产乱码精品一区二区三区不卡 | 亚洲国产电影| 欧美本精品男人aⅴ天堂| 亚洲国产婷婷综合在线精品 | 亚洲视频免费看| 欧美三级网址| 亚洲小说春色综合另类电影| 国产精品免费看久久久香蕉| 亚洲欧美日韩在线高清直播| 国产日韩三区| 久久久久久久波多野高潮日日| 国外视频精品毛片| 久久婷婷国产综合尤物精品| 伊人久久亚洲热| 麻豆视频一区二区| 亚洲国产精品va在看黑人| 欧美成人国产va精品日本一级| 亚洲国产成人久久| 欧美精品 国产精品| 99国内精品久久| 国产精品久久二区| 欧美影视一区| 影音先锋中文字幕一区二区| 麻豆亚洲精品| 99精品欧美一区二区蜜桃免费| 国产精品a级| 欧美中文字幕精品| 伊人久久大香线蕉综合热线 | 国产精品久久久久影院色老大| 性欧美videos另类喷潮| 国产一区二区三区日韩欧美| 蜜臀91精品一区二区三区| 亚洲国产欧美另类丝袜| 欧美另类69精品久久久久9999| 在线亚洲自拍| 国产视频久久久久| 免费在线国产精品| 在线视频欧美日韩| 国产欧美一区二区三区在线看蜜臀| 久久久久久久波多野高潮日日| 亚洲区免费影片| 国产精品久久9| 久久青草久久| 99精品热视频只有精品10| 国产精品综合网站| 免费成人av在线| 亚洲一区二区三区四区在线观看| 国产一区二区三区在线观看网站| 欧美11—12娇小xxxx| 亚洲一区二区三区精品在线| 国语自产偷拍精品视频偷| 欧美精品激情在线观看| 午夜精品影院在线观看| 影音先锋日韩精品| 欧美网站在线观看| 久久婷婷国产综合精品青草| av成人激情| 狠狠狠色丁香婷婷综合久久五月 | 欧美日韩免费在线观看| 亚洲欧美一区二区激情| 亚洲高清不卡在线| 国产精品丝袜白浆摸在线| 免费观看一区| 午夜精品久久久久久久白皮肤| 在线精品国产欧美| 国产精品久久久久久久久久久久久 | 欧美国产精品劲爆| 欧美亚洲在线视频| 日韩视频亚洲视频| 狠狠色综合网站久久久久久久| 欧美网站在线观看| 噜噜噜在线观看免费视频日韩| 亚洲在线观看| 亚洲精品国产品国语在线app | 午夜精品福利电影| 亚洲精品综合| 国产在线欧美| 欧美性猛交99久久久久99按摩| 久久综合九色欧美综合狠狠| 亚洲一区综合| 亚洲美女福利视频网站| 精品动漫3d一区二区三区免费版 | 91久久综合亚洲鲁鲁五月天| 国产日产欧产精品推荐色| 中文在线一区| 欧美精品久久久久久久久老牛影院| 亚洲小少妇裸体bbw| 亚洲国产欧美日韩精品| 国产亚洲欧洲一区高清在线观看| 欧美激情一区二区久久久| 久久gogo国模啪啪人体图|