2016-11-23 233 views
2

我想了解。選擇ul內的所有複選框

爲什麼這是行不通的:

$(this).closest("li").find("ul:checkbox").prop("checked", true); 

但這決?

$(this).closest("li").find("ul").find(":checkbox").prop("checked", true); 

感謝

+2

道具使用'.prop()'方法(沒有雙關),而不是'.attr()'。我無法告訴你在這種情況下我看到有多少人使用錯誤的方法... – War10ck

回答

7

在你的第一個例子中的問題,是因爲ul:checkbox。這查找<ul>也是複選框的元素,這是不可能的。在這些選擇器之間需要一個空格,或者像第二個示例中那樣使用find()

的這些任一將工作:

$(this).closest("li").find("ul :checkbox").prop("checked", true); 
// or 
$(this).closest("li").find("ul").find(":checkbox").prop("checked", true);