【问题标题】:.each to return value in js.each 在 js 中返回值
【发布时间】:2016-12-22 01:21:06
【问题描述】:

假设我有 4 个 div 元素:

<div class="example"></div> //empty
<div class="example"></div> //empty
<div class="example">hi</div> //has content
<div class="example"></div> //empty

然后使用.each,我想分配0(空)或1(有内容)的值:

var container = {}; 

container['status'] = $('div.example').each(function(){                 
         var inside = $(this).html();

         //Check for empty
         if (typeof inside == 'undefined' || inside == '' || inside == '<br>') {                        
             var warning = 0;

         }else{
             var warning = 1;

         }  
         return warning;

       });  

console.log(container);

在这种情况下,我想获得“0,0,1,0”作为返回值。我该怎么做?

【问题讨论】:

  • 使用 map 而不是 each()。每个都不返回
  • 啊,我明白了。谢谢!我会试试看的!
  • 我认为我们需要更多答案,哈哈
  • 哈哈。哈哈,越多越好:P

标签: javascript jquery arrays loops


【解决方案1】:

使用$.map()返回值数组

var container = {}; 

container["status"] = $.map($('div.example'), function(el) {  
                        return !el.textContent.trim().length || $(el).is(":empty") 
                               ? 0 : 1
                      });

【讨论】:

    【解决方案2】:

    改用map 函数 - 请参阅下面的演示:

    var container = {};
    
    container['status'] = $('div.example').map(function() {
      var inside = $(this).html();
      //Check for empty
      if (typeof inside == 'undefined' || inside == '' || inside == '<br>') {
        var warning = 0;
      } else {
        var warning = 1;
      }
      return warning;
    }).get();
    
    console.log(container);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="example"></div>
    <div class="example"></div>
    <div class="example">hi</div>
    <div class="example"></div>

    【讨论】:

      【解决方案3】:
      container['status'] = $(selector).each(YourFunc)
      

      使用map代替每个,然后调用join来加入元素

      container['status'] = $(selector).map(YourFunc).get().join()
      

      适用于 Jquery 1.10.2

      【讨论】:

        猜你喜欢
        • 2015-07-10
        • 2015-11-21
        • 2013-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-19
        • 2021-03-03
        相关资源
        最近更新 更多