阅读文档时,我希望$("#wrap2").remove(".error")
删除.error
中的所有#wrap2
元素。然而,看看这个JSFiddle: http://jsfiddle.net/hCGUS/ 似乎并非如此?
$(function() {
$("#wrap1 .error").remove(); // works
$("#wrap2").remove(".error"); // fails ...
})
答案 0 :(得分:8)
正如文档所述,要删除的selector参数是
一个选择器表达式,用于过滤匹配元素集 除去。
第一个示例是您应该用来删除ID为error
的元素中包含的类wrap1
的元素。
第二个示例将找到标识为wrap2
的元素,然后为具有类error
的元素过滤该集合,并删除这些元素。也就是说,它只会删除与#wrap2.error
匹配的元素。
答案 1 :(得分:3)
The docs说,当传递一个参数时,它作为一个过滤器对它被调用的包装集合起作用,所以如果你有一个jQuery集,但只想删除集合中的一些元素,你可以传递一个选择器来删除那些。
答案 2 :(得分:3)
根据jQuery文档。我想
$("#wrap2").remove(".error");
等于:
$("#wrap2.error").remove();
表示元素具有标识wrap2
和类error
答案 3 :(得分:1)
建立x1a4的答案,$("wrap2")
只包含一个元素,而不包含任何子元素。如果你这样做了:
$("wrap2 *").remove(".error")
它的效果与您的工作版本相同。
答案 4 :(得分:-3)
请使用removeClass而不是删除
$( “#wrap2”)removeClass( “错误”);