3

阅读文档,我希望$("#wrap2").remove(".error")从. 但是看看这个 JSFiddle: http: //jsfiddle.net/hCGUS/似乎不是这样?.error#wrap2

$(function() {
    $("#wrap1 .error").remove(); // works 
    $("#wrap2").remove(".error"); // fails ...
})​
4

5 回答 5

8

正如文档所述,要删除的选择器参数是

筛选要删除的匹配元素集的选择器表达式。

第一个示例是您应该使用什么来删除errorid 元素中包含的class 元素wrap1

第二个示例将找到具有 id 的元素wrap2,然后为具有 class 的元素过滤该集合error,并删除这些元素。也就是说,它只会删除匹配的元素#wrap2.error

于 2012-06-14T03:09:14.077 回答
3

文档说,在传递参数时,它充当被调用的包装集上的过滤器,所以如果你有一个 jQuery 集,但只想删除集中的一些元素,你可以将选择器传递给只删除那些。

于 2012-06-14T03:07:18.217 回答
3

根据 jQuery 文档。我认为

$("#wrap2").remove(".error");

等于:

$("#wrap2.error").remove();

表示一个元素有 idwrap2和 classerror

于 2012-06-14T03:10:50.337 回答
1

基于 x1a4 的答案,$("wrap2")仅包含一个元素,而不包含其任何子元素。如果你这样做了:

$("wrap2 *").remove(".error")

它的性能与您的工作版本相同。

于 2012-06-14T03:11:46.140 回答
-3

请使用 removeClass 而不是 remove

$("#wrap2").removeClass("error");

于 2012-06-14T03:17:49.150 回答