今天我們來掰扯掰扯attribute
和property
的區別,搞開發的人可能都見過這兩個單詞,但是他們在程式設計中到底有什麼區別呢?我們先來看一篇老外的文章:
翻譯自:
什麼是property
?
js dom物件都擁有property
,這些property
是一種類似於特定元素的例項變數之類的東西。比如,乙個property
可以是各種不同的型別(boolean
,string
等等)。property
可以通過jquery
的prop
方法來進行訪問(詳見下面的**),也可以通過vanilla js
物件進行互動。
我們來看一下下面這段**:
hi
$('#linkid').prop('href'); // returns ""
$('#linkid').prop('name'); // returns "linkname"
$('#linkid').prop('id'); // returns "linkid"
$('#linkid').prop('classname'); // returns "link classes"
a
標籤中所有的屬性都可以通過prop
方法來獲取,甚至是我們並沒有在標籤中指定的屬性
prop
方法也可以用來更新標籤中的屬性值,**如下:
hi
$('#linkid').prop('href', 'page1.html');
$('#linkid').prop('href'); // returns ""
什麼是attribute
?
屬性存在於html
本身,而不是在dom
中(其實我也不太明白作者是幾個意思???)
它和property
非常相似,但並不完全相同,當有乙個可用的property
時,推薦你使用property
而不是attributes
如果你使用attr
去獲取乙個標籤的attr
,那你真的會得到這個標籤(你會得到這個標籤本身的字串???),也就是說attribute
僅僅能獲取string'
(字串)屬性,**如下:
$('input').prop('checked'); // returns true
$('input').attr('checked'); // returns "checked"
如果乙個元素擁有乙個預設值,那麼attr
方法就會獲得這個元素的預設值,即使這個元素的值被更新樂,**如下:
$('input').prop('value', '456user');
$('input').prop('value'); // returns "456user"
$('input').attr('value'); // returns "user123"
當標籤中沒有關聯的property
時,我們可以使用attribute
來設定自定義屬性,**如下:
$('input').attr('customattribute', 'something custom');
$('input').attr('customattribute'); // returns "something custom"
$('input').prop('customattribute'); // returns undefined
注意,在上面的**中,使用prop
方法無法獲取到attr
方法設定的屬性值
同理,我們也可以用prop
來設定自定義屬性,但是attr
也一樣無法獲取該屬性:
$('input').prop('customattribute', 'something custom');
$('input').prop('customattribute'); // returns "something custom"
$('input').attr('customattribute'); // returns undefined
今天先寫到這兒吧 Attribute 和 Parameter 的區別
request.getparameter取得web客戶端 jsp 到web服務端的http請求資料 get post 只能是string型別的,而且httpservletrequest沒有對應的setparameter 方法。如利用href url 和form請求伺服器時,表單資料通過paramet...
property和attribute的區別
property是指類向外提供的資料區域。而attribute則是描述物件在編譯時或執行時屬性的,分為固有型和使用者自定義型,其中使用者自定義型可以利用reflection在執行期獲取。這兩者是有本質區別的。資料上說二者乙個是service的屬性,而另乙個是inte ce的。第一種好象更準確,摘要如...
Property和attribute的區別
property和attribute的區別 attribute和property都可以翻譯成 屬性 有的地方用attribute表示 屬性 有的地方又在用property,初 學者常常在這兩個單詞間 迷失 甚至認為二者沒有區別,是一樣的。可是attribute不等於property。二者之間到底有何...