【问题标题】:Jquery if any element in a class meets the conditionJquery如果类中的任何元素满足条件
【发布时间】:2015-04-29 06:44:08
【问题描述】:

我想检查一个类中的任何元素是否满足某些条件。 例子。

$(document).on('click','.modalInner_form_nav', function(){
  var input = $(this).parents('.modalInner_form').find('.validate_g'); 
  //$(input).each(function(index, element) {
    if ($(input).val() == ''){
        $(input).css('border', '#BB0000 1px solid');
        return false;
    } 
    else {
      /////////go to next///////////
      if ($(this).parents('.modalInner_form').is(':last-child')){

      } 
      else {
        $(this).parents('.modalInner_form').slideUp();
        $(this).parents('.modalInner_form').next('.modalInner_form').slideDown();
      }         
                ////////////
    }
});

如果所有输入字段都为空,则返回 false,但如果此类中的一个不为空,则返回 true。

【问题讨论】:

  • 这段代码有问题,还是你只是想重构它?
  • @RoryMcCrossan 有一个问题,如果任何“输入”不为空:“如果 ($(input).val() == ''){”,它不会返回false。如果“validate_g”类中的任何输入字段为空,我不希望它继续进行。
  • @Relm 分享 fiddle 链接

标签: javascript jquery html class foreach


【解决方案1】:

问题是你有一个内部函数所以

$(document).on('click', '.modalInner_form_nav', function () {
    var $form = $(this).parents('.modalInner_form');
    var $input = $form.find('.validate_g');

    var valid = true;
    $input.each(function (index, element) {
        var $this = $(this)
        if ($this.val() == '') {
            valid = false;
            $this.css('border', '#BB0000 1px solid');
        }
    });

    if (valid) {
        if ($form.is(':last-child')) {
            //do something else
        } else {
            $form.slideUp();
            $form.next('.modalInner_form').slideDown();
        }

    }
});

【讨论】:

  • 所以 $input === $(input); ?
  • @Relm yes... var $this = $(this) - 用于缓存引用
【解决方案2】:

不太确定您的问题是什么,但这里有一种改进代码的方法。

$(this).parents('.modalInner_form') 保存在一个变量中,而不是不断重复同一行代码。然后,您可以用变量替换所有这些方法调用,并在变量上调用您想要的任何函数。

var varName = $(this).parents('.modalInner_form');
varName.find('.validate_g');
...
if(varName.is(':last-child')){
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-15
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 2021-12-05
    相关资源
    最近更新 更多