国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

jQuery中attr()和prop()方法的一些區(qū)別理解

iKcamp / 2403人閱讀

摘要:后來(lái)了一番不知怎么搜索的又發(fā)現(xiàn)了一個(gè)和區(qū)別的一些解釋。操作對(duì)象不同在中表示文檔節(jié)點(diǎn)屬性,而則表示對(duì)象屬性。函數(shù)主要依賴(lài)的是對(duì)象的和兩個(gè)方法。

  

昨天在開(kāi)發(fā)的時(shí)候同事幫忙寫(xiě)了一小段JS代碼,取數(shù)據(jù)的時(shí)候用到了以前都沒(méi)用過(guò)的$(this).data("xxx")的這種形式,后來(lái)看了手冊(cè)才知道在HTML5中可以對(duì)元素進(jìn)行自定義屬性。格式類(lèi)似于data-xxx="value",然后可以用JQ中的.data()方法進(jìn)行存取數(shù)據(jù)。
后來(lái)GG了一番不知怎么搜索的又發(fā)現(xiàn)了一個(gè)attr()prop()區(qū)別的一些解釋。

操作對(duì)象不同

在jQuery中attr表示HTML文檔節(jié)點(diǎn)屬性,而prop則表示JS對(duì)象屬性。


在jQuery中,prop()函數(shù)的設(shè)計(jì)目標(biāo)是用于設(shè)置或獲取指定DOM元素(指的是JS對(duì)象,Element類(lèi)型)上的屬性(property);attr()函數(shù)的設(shè)計(jì)目標(biāo)是用于設(shè)置或獲取指定DOM元素所對(duì)應(yīng)的文檔節(jié)點(diǎn)上的屬性(attribute)。




當(dāng)然,在jQuery的底層實(shí)現(xiàn)中,函數(shù)attr()prop()的功能都是通過(guò)JS原生的Element對(duì)象(如上述代碼中的msg)實(shí)現(xiàn)的。attr()函數(shù)主要依賴(lài)的是Element對(duì)象的getAttribute()setAttribute()兩個(gè)方法。prop()函數(shù)主要依賴(lài)的則是JS中原生的對(duì)象屬性獲取和設(shè)置方式。

javascript

當(dāng)然,jQuery對(duì)這些操作方式進(jìn)行了封裝,使我們操作起來(lái)更加方便(比如以對(duì)象形式同時(shí)設(shè)置多個(gè)屬性),并且實(shí)現(xiàn)了跨瀏覽器兼容。

此外,雖然prop()針對(duì)的是DOM元素的property,而不是元素節(jié)點(diǎn)的attribute。不過(guò)DOM元素某些屬性的更改也會(huì)影響到元素節(jié)點(diǎn)上對(duì)應(yīng)的屬性。例如,property的id對(duì)應(yīng)attribute的id,property的className對(duì)應(yīng)attribute的class



應(yīng)用版本不同

attr()是jQuery 1.0版本就有的函數(shù),prop()jQuery 1.6版本新增的函數(shù)。毫無(wú)疑問(wèn),在1.6之前,你只能使用attr()函數(shù);1.6及以后版本,你可以根據(jù)實(shí)際需要選擇對(duì)應(yīng)的函數(shù)。

設(shè)置屬性值類(lèi)型不同

由于attr()函數(shù)操作的是文檔節(jié)點(diǎn)的屬性,因此設(shè)置的屬性值只能是字符串類(lèi)型,如果不是字符串類(lèi)型,也會(huì)調(diào)用其toString()方法,將其轉(zhuǎn)為字符串類(lèi)型。
prop()函數(shù)操作的是JS對(duì)象的屬性,因此設(shè)置的屬性值可以為包括數(shù)組和對(duì)象在內(nèi)的任意類(lèi)型

其他的細(xì)節(jié)問(wèn)題

在jQuery 1.6之前,只有attr()函數(shù)可用,該函數(shù)不僅承擔(dān)了attribute的設(shè)置和獲取工作,還同時(shí)承擔(dān)了property的設(shè)置和獲取工作。例如:在jQuery 1.6之前,attr()也可以設(shè)置或獲取tagName、className、nodeName、nodeType等DOM元素的property。

直到j(luò)Query 1.6新增prop()函數(shù),并用來(lái)承擔(dān)property的設(shè)置或獲取工作之后,attr()才只用來(lái)負(fù)責(zé)attribute的設(shè)置和獲取工作。

★★★★★
此外,對(duì)于表單元素的checkedselecteddisabled等屬性,在jQuery 1.6之前,attr()獲取這些屬性的返回值為Boolean類(lèi)型如果被選中(或禁用)就返回true,否則返回false。
★★★★★
但是從1.6開(kāi)始,使用attr()獲取這些屬性的返回值為String類(lèi)型,如果被選中(或禁用)就返回checkedselecteddisabled否則(即元素節(jié)點(diǎn)沒(méi)有該屬性)返回undefined。并且,在某些版本中,這些屬性值表示文檔加載時(shí)的初始狀態(tài)值,即使之后更改了這些元素的選中(或禁用)狀態(tài),對(duì)應(yīng)的屬性值也不會(huì)發(fā)生改變。因?yàn)閖Query認(rèn)為:attributecheckedselecteddisabled就是表示該屬性初始狀態(tài)的值,property的checked、selected、disabled才表示該屬性實(shí)時(shí)狀態(tài)的值(值為true或false)。

因此,在jQuery 1.6及以后版本中,請(qǐng)使用prop()函數(shù)來(lái)設(shè)置或獲取checkedselecteddisabled等屬性。對(duì)于其它能夠用prop()實(shí)現(xiàn)的操作,也盡量使用prop()函數(shù)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/85643.html

相關(guān)文章

  • jQueryattr()prop()區(qū)別

    摘要:需求很簡(jiǎn)單的,一個(gè)非常簡(jiǎn)單的復(fù)選框的使用。與的區(qū)別復(fù)選框設(shè)置設(shè)置自定義自定義設(shè)置類(lèi)型設(shè)置類(lèi)型支持類(lèi)型在這里溫馨提示提示一下,當(dāng)我們?cè)O(shè)置這個(gè)屬性時(shí),再用獲取的時(shí)候,控制提示。 問(wèn)題引入 昨天接到了一個(gè)活,里面有一個(gè)小需求,在寫(xiě)的過(guò)程中遇到了一個(gè)小問(wèn)題。雖然這個(gè)問(wèn)題并不是很復(fù)雜的東西,但卻是一個(gè)比較細(xì)節(jié)的問(wèn)題。相信不少新手前端會(huì)遇到。下面我先描述一下我這個(gè)遇到的這個(gè)需求。 showImg(...

    mo0n1andin 評(píng)論0 收藏0
  • jQuery attrprop 區(qū)別

    摘要:先提出問(wèn)題對(duì)于這類(lèi)值是的屬性,用的或方法進(jìn)行讀取或設(shè)置值是有區(qū)別的。因此,如果你想知道文本框的當(dāng)前值,則讀取。的值并不會(huì)隨著的狀態(tài)而作出相應(yīng)改變,而會(huì)。為對(duì)象設(shè)置值的安全做法避免內(nèi)存泄漏是使用。參考翻譯地址的與的區(qū)別 先提出問(wèn)題:對(duì)于 checked 這類(lèi)值是 true/false 的屬性,用 jQuery 的 attr 或 prop 方法進(jìn)行 讀取或設(shè)置值是有區(qū)別的。 在看 jQue...

    kk_miles 評(píng)論0 收藏0
  • jqueryattrprop區(qū)別

    摘要:今天研究前端的給固有屬性加值是出現(xiàn)錯(cuò)誤,搜索了下,找到了原因,就是中和的區(qū)別。下面和大家分享下在高版本的引入方法后,什么時(shí)候該用什么時(shí)候用它們兩個(gè)之間有什么區(qū)別這些問(wèn)題就出現(xiàn)了。關(guān)于它們兩個(gè)的區(qū)別,網(wǎng)上的答案很多。 今天研究前端jquery的attr給固有屬性加值是出現(xiàn)錯(cuò)誤,搜索了下,找到了原因,就是:jquery中attr和prop的區(qū)別。下面和大家分享下: 在高版本的jquery引...

    ad6623 評(píng)論0 收藏0
  • jqueryattr()prop()區(qū)別

    摘要:在中新加了一個(gè)方法,查看文檔可以看到一句話獲取在匹配的元素集中的第一個(gè)元素的屬性值。這種情況適用于多選項(xiàng)全選和反選的情況。 在jquery1.6中新加了一個(gè)方法prop(),查看jquery文檔可以看到一句話:獲取在匹配的元素集中的第一個(gè)元素的屬性值。 大家都知道有的瀏覽器只要寫(xiě)disabled,checked就可以了,而有的要寫(xiě)成disabled = disabled,checked...

    劉德剛 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<