【问题标题】:Using $(this) at a method inside another method in jQuery在 jQuery 中的另一个方法内的方法中使用 $(this)
【发布时间】:2015-08-19 17:06:35
【问题描述】:

所以,我正在尝试在另一个方法中的一个方法中使用“this”选择器,例如:

$('form').submit(function(event){
   $('input').each(function(){
       if($(this).val().length < 2){
           $(this).addClass('error');
           event.preventDefault(); 
       }
   });
});

当我这样做时,我认为它会承认“this”作为每个输入,但不,“this”选择器与表单相关联。我知道,因为结果是:

<form class="error" action="lorem.php" method="post">
    <input type="text" placeholder="Lorem Ipsum" name="example">
</form>

这只是一个例子,说明当我提交表单时,类'error'转到'form'标签。

我想知道如何在“each”方法中调用每个“输入”,因为“this”似乎不起作用。

我希望我在这里表达了我的观点,如果有人需要更多解释,请告诉我。

非常感谢!

【问题讨论】:

  • 该代码工作正常jsfiddle.net/5rq3w7h6/1
  • 您是否尝试为输入提供val="" 属性,也许这就是它不起作用的原因?还是控制台有错误?
  • 不好意思,谢谢,问题不在于概念,而在于执行。
  • @Paul 不,控制台没有错误,我只是愚蠢哈哈。不过谢谢!

标签: javascript jquery this each selector


【解决方案1】:

您需要将索引和元素发送到您的函数。

$('form').submit(function(event){
   $('input').each(function(index, element){
       if($(element).val().length < 2){
           $(element).addClass('error');
           event.preventDefault(); 
       }
   });
});

【讨论】:

  • 不,'each(function(index,element))' 中的索引和元素是可选的,已通过 Sgnl 链接验证
  • @Ohohorion 它是可选的,但使用这些引用比依赖“this”所指的内容更明确。
  • @user2368033 不知道那个参数,谢谢!
  • @Sgnl 我同意你的观点。使用索引和元素比使用“this”更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 2011-06-17
  • 2017-10-01
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
相关资源
最近更新 更多