如果只有一个错误类,如何选择输入内容

时间:2014-04-20 17:49:36

标签: javascript jquery html css

我想检查是否有只有一个带有错误类的 div。如果是这样,我想.select()输入的内容(在相应的输入类div中的那个)。

我该怎么做?

我的尝试不起作用:

if($("div.addition").hasClass(".error").length === 0) {
    (this).parent().find('input').select();
}

HTML

<form>
    <div class="input">
        <input type="text">
        <div>
            <div class="addition">Message message.</div>
        </div>
    </div>
    <div class="input">
        <input type="text">
        <div>
            <div class="addition">Message.</div>
        </div>
    <div class="input">
        <!-- So in this case this input's content will be selected -->
        <input type="text">
        <div>
            <div class="addition error">Error message.</div>
        </div>
    </div>
</form>

4 个答案:

答案 0 :(得分:0)

这是一个简单的JavaScript实现。除非您已经在使用它,否则无需使用jQuery。

var errors = document.getElementsByClassName('error');
if(errors.length === 1){
  //If there is one class with error
  var content = errors[0].innerHTML;
} else{
  //there is more than one error class.
}

答案 1 :(得分:0)

  

我想检查是否只有一个带有错误类的div。

if ($("div.error").length === 1) {
    // Exactly one div with the class "error"
}
else {
    // Zero or more than one
}

答案 2 :(得分:0)

通过使用jQuery,它可以像:

$(document).ready(function(){
    var div = $('.error');
    if(div.length){
    var val =  div.parents('.input:first').find('input').val();
    //val is the value of input
    }
});

答案 3 :(得分:0)

此处&#39; sa jsFiddle应该这样做 - 我在帖子中提到您错过了</div>标记,这是在小提琴中修复的 - 没有它,jquery选择器匹配两个输入。 js的概要:

if ($('div.error').length === 1) {
    errorContent = $('div.error').parents('div.input').find('input').val();
    alert(errorContent);
}