Javascript 检查所有元素中的特定类
当所有li元素都有“valid”类时,我想console.log()生成一条消息。目前,它通过键控功能连接到我的输入。我下面的jQuery代码不起作用。谢谢 HTML:Javascript 检查所有元素中的特定类,javascript,jquery,Javascript,Jquery,当所有li元素都有“valid”类时,我想console.log()生成一条消息。目前,它通过键控功能连接到我的输入。我下面的jQuery代码不起作用。谢谢 HTML: 在标记中搜索未设置.valid类的li标记。如果没有,则认为所有lis都有效 if($('li:not(.valid)').length === 0) { // Everything's valid } 编辑:如果您不想检查页面上的所有li-标记,请更具体地了解元素,如\pswd\u info li检查\pswd\u i
在标记中搜索未设置
.valid
类的li
标记。如果没有,则认为所有li
s都有效
if($('li:not(.valid)').length === 0) {
// Everything's valid
}
编辑:如果您不想检查页面上的所有li
-标记,请更具体地了解元素,如\pswd\u info li
检查\pswd\u info
中元素内的列表元素
资料来源:
当所有li元素都有“valid”类时,我想console.log()生成一条消息
因此,当没有li
而没有“valid”类时,您希望记录一条消息
然后检查选择器li:not(.valid)
是否返回空列表
使用vanilla JS,您可以得到类似的结果:
if (document.querySelectorAll('li:not(.valid)').length === 0) {
console.log("Your message");
}
当所有li元素都有“valid”类时,我想console.log()生成一条消息
您可以比较两个jQuery选择器的内容,以检查它们是否都有特定的类,例如
if( $('#pswd_info ul li').length == $('#pswd_info ul li.valid').length){
console.log('all li inside #pswd_info ul has the valid class');
}
您不会显示用于实际添加标记的任何逻辑,但当所有(5)个字段都
.valid
时会显示。但是,这个确切的字段并不是真正可持续的或可伸缩的-最好删除无效标记,并查找.invalid
等于0
的字段数
$('.newPwInput、.confirmPwInput').keyup(函数(){
var validCount=$('#pwd_info ul li.valid').length;//计算有多少元素具有有效标记
console.log(validCount);
如果(validCount==5){
log('所有字段都有效');
}
});代码>
至少
一个字母
至少
一个大写字母
至少
一个数字
- 至少
10个字符
-
密码必须匹配
您的代码逻辑显示“如果这有classvalid
,那么添加classvalid
”…我在您的标记中没有看到\pswd\u info
。它是否在未显示的祖先元素上?对不起,我忘了。edited@TylerRoper这是正确的。冗余逻辑。而不是添加类,而是控制台日志$(this)
。谢谢Tyler,我如何检查它们是否都有类“有效”?size()
自jQuery 1.8以来一直被弃用。使用.length
代替。谢谢@tyleroper,我完全忽略了这一点,我想知道在你的回答中,==
和==
之间有什么区别?@lucumt-在这种情况下,没有什么,因为length
和0
都是数字。在一般情况下,如果操作数的类型不相同,=
将使用类型强制来尝试找到相等,因此(例如)“==0
为真=
不会尝试强制,不同类型的操作数永远不会彼此==
。但是当操作数的类型相同时,==
和===
执行相同的操作。
if (document.querySelectorAll('li:not(.valid)').length === 0) {
console.log("Your message");
}
if( $('#pswd_info ul li').length == $('#pswd_info ul li.valid').length){
console.log('all li inside #pswd_info ul has the valid class');
}