首页 > 解决方案 > 将函数分配给变量的问题

问题描述

我正在做以下演示。为什么我无法获得分配给变量的函数的结果?

var cartssku = function() {
  $(".cart").each(function() {
    skus = [];
    skus.push($(this).data('sku'));
    return skus.join();
  });
};

console.log(cartssku);
.cart {
  background: gold;
  height: 40px;
  width: 100%;
  margin: 6px;
  padding: 6px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="cart" data-sku="mt-01"> Cart SKU I</div>
<div class="cart" data-sku="mt-02"> Cart SKU II</div>
<div class="cart" data-sku="mt-03"> Cart SKU III</div>

标签: javascriptjquery

解决方案


  1. 如果你的函数返回一些东西,你必须像函数一样调用它:yourfunction();
  2. 函数内部的函数正在返回一些东西,而不是你正在调用的函数正在返回一些东西。尝试这个:

var cartssku = function() {
  var skus = [];

  $(".cart").each(function() {
    skus.push($(".cart").data('sku'));
  });
  return skus.join()

};

console.log(cartssku());
.cart {
  background: gold;
  height: 40px;
  width: 100%;
  margin: 6px;
  padding: 6px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="cart" data-sku="mt-01"> Cart SKU I</div>
<div class="cart" data-sku="mt-02"> Cart SKU II</div>
<div class="cart" data-sku="mt-03"> Cart SKU III</div>


推荐阅读