2017-04-18 59 views
0

正如標題所示,elem.is(':checked')elem.prop('checked')之間的區別是什麼。elem.is(':checked')vs elem.prop('checked')

我個人使用elem.is(':checked'),因爲函數is解釋說我要返回布爾值。

我應該什麼時候選擇一個,爲什麼?

+0

它是別名。使用最合適的那個。 – Justinas

回答

1

基於This SO Question的答案。

如果您使用1.6.0或更高版本,prop('checked')是最直接的jQuery方法。 jQuery不必解析和處理選擇器來確定要做什麼。

注意:prop比直接的程度要大於 瀏覽器。道具不僅僅是一個財產的直接檢查,它首先通過幾個層次的間接進行 ;並且不是 必然非常複雜:例如,在WebKit瀏覽器上, 可以相當直接,因爲WebKit提供了一個函數來測試 元素是否與選擇器匹配,並且支持:本機檢查;在火狐 (和,我懷疑,IE),結果在大量的函數調用 這個看似簡單的選擇器通過 Sizzle的膽量。

測試結果: jQuery prop('checked') vs. is(':checked')

0

.prop用於獲取/設置元素的屬性值。而 傳遞一個參數,它將返回屬性(第一個參數) 值,並在傳遞兩個參數時,它將第二個參數 設置爲第一個參數(元素的屬性)的值。

因此,elem.prop('checked')將返回checked屬性的值。該值的數據類型可以是基於屬性的任何內容(布爾值/字符串)。

如果選中elem.prop('type'),這將返回type屬性,它是一個string數據類型和返回checkbox作爲輸出的值。

.is用於檢查元素是否匹配 條件中傳遞的參數是true/false。因此,數據類型 將始終爲布爾值(真/假)。

因此,您可以檢查是否選中(或)不使用elem.is(':checked')。這裏,:checked被稱爲pseudo元素來檢查元素的state(選中/未選中)。

您還可以使用elem.is('[type="checkbox"]')檢查元素是否爲複選框。這裏用[type="checkbox"]來檢查屬性type的元素是否爲checkbox