【问题标题】:jQuery Filter HelpjQuery 过滤器帮助
【发布时间】:2009-12-18 20:41:28
【问题描述】:

这段代码有什么问题...

var objects = $(".validated").filter(function(){
                                   return $(this).attr("name") == 'name';
                             }).filter(function (){
                                   return $(this).val() == '';
                             });

真的很烦我:(

【问题讨论】:

  • 你想做什么?什么不工作?
  • 怎么办不行。我假设您要过滤掉任何名称不等于“名称”的元素并过滤掉任何没有空白值的元素?
  • 从您的其他问题来看,我认为您正在寻找的东西是将过滤器 OR 放在一起?
  • 我想过滤掉空白,也过滤掉name属性为'name'的元素

标签: javascript jquery filter return-value


【解决方案1】:
var objects = $(".validated").filter(function() {
    var ele = $(this);
    return ele.attr("name") == 'name' || ele.val() == '';
});

【讨论】:

  • 我不敢相信这被接受了。它没有达到 tarnfeld 的要求……他想在 name='name' 并且元素值为空白时过滤掉。当函数返回 false 时,过滤器会消除元素。 “如果函数返回 false,则删除该元素 - 任何其他内容,并且该元素保留在匹配元素的结果集中。” -docs.jquery.com/Traversing/filter
  • 我不太清楚他是否真的想按照你的意思去做。他自己的代码似乎试图准确地保留我所做的那些元素。你在哪里第一个自己使用“过滤掉”这个词。也许 tarnfeld 理解为“out”“过滤掉它们 == 删除其他”,例如将错误类添加到那些或类似的
【解决方案2】:

当函数返回 false 时,过滤器将删除一个元素。因此,当您遇到具有 name="name" 的元素并且它为空时,您希望它返回 false。

var objects = $(".validated").filter(function(){
                                   // Will return false when name="name"
                                   return $(this).attr("name") != 'name';
                             }).filter(function (){
                                   // Will return false when the value is blank
                                   // Added trim to ensure that blank spaces
                                   // are interpreted as a blank value
                                   return $.trim($(this).val()) != '';
                             });

缩短的版本是:

var objects = $(".validated").filter(function(){
                  // Will return false when name="name" or blank value
                  return $(this).attr("name") != 'name' && $.trim($(this).val()) != '';
              });

【讨论】:

  • 所以 'name' 位 - 当它获得 attr 'name'='name' 时,它会将对象添加到数组 'objects' 中吗??
  • 并且还去掉了空白值的元素
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
  • 2011-09-17
相关资源
最近更新 更多