我最近遇到过这个问题:How do I check if an element is hidden in jQuery?
目前接受的答案似乎表明Ligne.class
优于mapperFactory.classMap(Value.class, Ligne.class).field().field("codeActivite1.value", "tasks.tasks[0].notes").register();
public class Value {
@SerializedName("code_activite1")
private CodeActivite1 codeActivite1;
//getter setter
}
public class CodeActivite1 {
@SerializedName("value")
private String value;
//getter setter
}
public class Ligne {
private Tasks tasks;
//getter setter
}
public class Tasks{
private Task[] tasks;
//getter setter
}
public class Task {
private String notes;
//getter setter
}
ma.glasnost.orika.MappingException: java.lang.IllegalArgumentException: java.lang.String is an unsupported source class for constructing instances of com.xxxx.business.xxxx.bean.Task[]
,因为$('element').is(':hidden')
过滤器仅适用于单个元素。
但是......当你调用另一个函数时,调用$('element:hidden')
也会增加额外的开销。
这让我想到,如果选择器是一组元素,那么使用:hidden
的上述
那么更极端的情况呢?采取以下测试用例:
.is()
最好将它们留在选择器中吗?或者将它们全部移动到一个过滤器调用中:
.is()
或者链接它们会更好吗?
$('element.class1:not(.class2):visible[rel="foo"]')
答案 0 :(得分:4)
目前接受的答案似乎表明
$('element').is(':hidden')
优于$('element:hidden')
,因为:hidden
过滤器仅适用于单个元素。
我根本不会这样读,假设你正在处理字符串,那么$("some-selector:hidden")
不是<\ n < / strong>仅适用于单个元素;它适用于与some-selector
匹配的所有元素。
或者链接它们会更好吗?
$('element').is('.class1').not('.class2').is(':visible').filter('[rel="foo"]')
那会失败,因为is
返回一个布尔值:
.is(selector)
描述:针对选择器,元素或jQuery对象检查当前匹配的元素集,如果这些元素中至少有一个与给定的参数匹配,则返回true。
如果要选择符合多个条件的元素,可以将这些条件放在选择器字符串中。您应该问自己唯一真正的问题是,是否在字符串中使用:hidden
和其他jQuery-isms,因为这意味着jQuery无法将选择传递给浏览器的内置(阅读: 快速 )选择器引擎,并且必须自己完成工作。
出于这个原因,在这个例子中,你可能更喜欢将jQuery-isms移出它:
$('element.class1:not(.class2)[rel="foo"]').filter(":visible")