我有一个标识为commentform
的表单,如果有任何登录用户访问该网页,则会在类p
的表单下生成logged-in-as
标记。现在我正在尝试检查p
是否存在,如果不存在,则执行使用keyup()
的验证。这是一个小片段......
$('form#commentform').keyup(function() {
if( ! $(this).has('p').hasClass('logged-in-as') ) {
....
} else {
......
}
}
});
现在的问题是if( ! $(this).has('p').hasClass('logged-in-as') )
无法返回预期结果,无论该特定p
是否存在。
你们中的任何一个人能告诉我任何其他/更好的方法来检查这个吗?
答案 0 :(得分:6)
$('form#commentform').keyup(function() {
if($(this).find('p.logged-in-as').length == 1) {
....
} else {
......
}
}
});
你可以这样做来找到它。
答案 1 :(得分:4)
您可以使用
if ($('.logged-in-as', this).length)) {
但我宁愿使用变量来存储该状态,而不是依赖于检查原始标记的存在:如果稍微更改HTML会怎么样?
旁注:不要使用资格过高的选择器。 $('#commentform')
比$('form#commentform')
更快且逻辑上更一致。
答案 2 :(得分:1)
检查一个元素是否属于类" xxx"存在
if( $( ".xxx" ).size() > 0 ) {
// EXISTS
}
编辑:忘记了点(" .xxx")