jquery 獲取 自定義屬性(attr 和 prop)用法
兩種都可以,不過新版jquery推薦第二種,兩個在其他方面都差不多,我發現的唯一不同就是在checkbox上的時候,需要用prop,不然IE瀏覽器會不相容
jquery中用attr()方法來獲取和設定元素屬性,attr是attribute(屬性)的縮寫,在jQuery DOM操作中會經常用到attr(),attr()有4個表示式。
1. attr(屬性名) //獲取屬性的值(取得第一個匹配元素的屬性值。通過這個方法可以方便地從第一個匹配元素中獲取一個屬性的值。如果元素沒有相應屬性,則返回 undefined )
2. attr(屬性名, 屬性值) //設定屬性的值 (為所有匹配的元素設定一個屬性值。)
3. attr(屬性名,函式值) //設定屬性的函式值 (為所有匹配的元素設定一個計算的屬性值。不提供值,而是提供一個函式,由這個函式計算的值作為屬性值。)
4.attr(properties) //給指定元素設定多個屬性值,即:{屬性名一: “屬性值一” , 屬性名二: “屬性值二” , … … }。(這是一種在所有匹配元素中批量設定很多屬性的最佳方式。 注意,如果你要設定物件的class屬性,你必須使用'className' 作為屬性名。或者你可以直接使用'class'或者'id'。)
那麼是否有跟attr()相似的屬性呢?
$(this).val();獲取某個元素節點的value值,相當於$(this).attr("value");
$(this).val(value);設定某個元素節點的value值,相當於$(this).attr("value",value);
那麼怎麼刪除屬性呢?
jquery中刪除屬性的關鍵詞是: removeAttr 注意A是大寫的. 看看怎麼用的:
同樣是用法一中的html程式碼, 我想刪掉li的title屬性, 那麼就這樣:
<script> $("ul li:eq(1)").removeAttr ("title"); </script>
就這麼簡單, attr 其實就是原生js中 getAttribute 的簡化實現, 而removeAttr 就是 removeAttribute 的簡寫了。
jQuery 遍歷 - each() 方法
/**
* 分類選擇框
*/
$(".fcat").each(function(){
$(this).bind("change", function () {
var fid = $(this).val();
$(":checkbox[fid="+fid+"]").prop("checked", $(this).is(":checked"));
});
});