1. 程式人生 > >jQuery——attr和css的區別

jQuery——attr和css的區別

在jquery中,attr和css都和元素樣式有關,今天來說一說這兩者有什麼區別。

css() 方法返回或設定匹配的元素的一個或多個樣式屬性。

attr即[attribute]的縮寫,它是選擇器用於選取帶有指定屬性的元素

其實,它們之間的區別可以用一句話來概括:即attr設定和獲取某個屬性值,css設定和獲取style中的屬性。

下面用程式碼來說明一下這兩者之間的區別。

1.作用不同

<a href="#" id="link">這是一個JQ示例</a>

<script>

$("#link").css("display","none")

$("#link").attr("title","JQ新增的title")

</script>

上文中的程式碼,通過css將link的display設定為了none;通過attr為link添加了一個title屬性,其值為“JQ新增的title”。

 

這種使用方法正好驗證了上文所說的“attr——屬性、css——style”的聯絡。

2.優先順序不同

jquery中的css()是用來操縱style{}的,而attr()是加在標籤內部的,attr()的權重比css()要大,它會覆蓋css()的樣式。

3.獲取許可權不同

在jquery裡,css可取該標籤定義的css的屬性attr只能取該標籤裡自帶的屬性。

也就是說,如果直接在div中定義的屬性,css無法獲得。attr可以獲得css中的也可以獲得其他標籤裡自帶的屬性,而標籤裡沒有自帶的屬性,attr也無法獲得。

例如:在div裡,沒有width這個屬性,所以不能用attr給他賦值,在div的css樣式裡是有width這個屬性的,所以可以用$("#logo").css("width","180")來賦值。

如果想要動態地增加屬性,可以使用addClass()。它是為html元素動態的新增class。