jquery全選,取消全選

2021-08-27 02:52:28 字數 1969 閱讀 9938

最近專案又用到了這個全選和取消全選的操作.

**如下:

check all12

34

必須說的是jq1.6+以上才支援prop哦.關於prop可以看看下面這個.

今天在用jquery的時候發現乙個問題用.attr("checked")獲取checkbox的checked屬性時選中的時候可以取到值,值為"checked"但沒選中獲取值就是undefined.

為什麼jquery 1.6+增加了.prop()方法,因為在有些瀏覽器中比如說只要寫disabled,checked就可以了,而有的要寫成disabled = "disabled",checked="checked"。所以,從1.6開始,jq提供新的方法「prop」來獲取這些屬性。

以前我們使用attr獲取checked屬性時返回"checked"和"",現在使用prop方法獲取屬性則統一返回true和false。

那麼,什麼時候使用attr,什麼時候使用prop??

1.新增屬性名稱該屬性就會生效應該使用prop.

2.是有true,false兩個屬性使用prop.

3.其他則使用attr

專案中jquery公升級的時候大家要注意這點!

以下是官方建議attr(),prop()的使用:

但有以下三點,需要注意(摘自黑暗執行緒):

$(window).attr(), $(document).attr()建議改為$(windows).prop(), $(document).prop(),因為window及document理論上無從加上html attribute,雖然jquery 1.6.1在內部會偷偷改用.prop(),畢竟語意不合邏輯,應該避免。

在html語法中,checked attribute只會在一開始將checked property設成true,後續的狀態變更及儲存都是透過checked property。換句話說,checked attribute只影響初值,之後應以checked property為準。基於這個理由,$(「:checkbox」).prop(「checked」, true)會比$(「:checkbox」).attr(「checked」, true)來得合理。雖然jquery 1.6.1已讓$(「:checkbox」).attr(「checked」, true)也具有變更checked property的能力,但prop()確實比attr()寫法更吻合背後的實際運作。

適用此點的boolean屬性包含了: autofocus, autoplay, async, checked, controls, defer, disabled, hidden, loop, multiple, open, readonly, required, scoped, selected

jquery team提供一張dom元素屬性適用attr()/prop()的對照表:

attribute/property

.attr().prop()

accesskey

✓align

✓async✓✓

autofocus✓✓

checked✓✓

class

✓contenteditable

✓defaultvalue

✓draggable

✓href✓id

✓label

✓location *✓✓

multiple✓✓

nodename

✓nodetype

✓readonly✓✓

rel✓

selected✓✓

selectedindex

✓src

✓style

✓tabindex

✓tagname

✓title

✓type

✓width **

✓原文:

jquery全選,取消全選

最近專案又用到了這個全選和取消全選的操作.如下 check all12 34 必須說的是jq1.6 以上才支援prop哦.關於prop可以看看下面這個.今天在用jquery的時候發現乙個問題用.attr checked 獲取checkbox的checked屬性時選中的時候可以取到值,值為 check...

全選 取消全選

這裡用到angularjs四大特性之二 雙向資料繫結 注意 沒寫一行dom 這就是ng的優點,bootstrap.css為了布局,js 也只是簡單建立ng模組和ng控制器 效果 全選 取消全選 title head body div class container ng controller myc...

全選 取消全選那點事

今天我花了半天時間處理checkbox全選 取消全選那點事 技術領域 可信計算 其他 全選 申請日2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2000 2001 2002 2...