如何检查jQuery中的表单下是否存在一个元素

时间:2015-11-16 14:50:41

标签: javascript jquery

我有一个标识为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是否存在。

你们中的任何一个人能告诉我任何其他/更好的方法来检查这个吗?

3 个答案:

答案 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")