【问题标题】:jQuery append element into X dropdowns with same class namejQuery将元素附加到具有相同类名的X下拉列表中
【发布时间】:2017-06-13 14:44:21
【问题描述】:

每个产品有 1 - 20 个保管箱,每个产品都有具有相同类名 (product_id) 的保管箱。

然后我有另一个来自控制器的数组,其中包含可以取消数量的产品信息。

现在我必须在那些带有 product_id X 和 quntity Y 的下拉列表中附加选项“取消”(信息 X,Y 从控制器写入数组中)。

例如。 product: 1, qty: 3; - 这意味着我必须添加 3 个下拉选项“取消”,但客户最多可以订购 20 件 ID 为 1 的产品,我必须仅将选项取消添加到 ID 为 1 的 3 个(数量)产品(其他必须没有那个选项)。

这是我的html代码

//Dropboxes
echo '<div class="col-sm-6">' . 
    $this->Form->input( 'task[]', [
        'label' => __('Container action'),
        'options' => $taskAction,
        'default' => '1',
        'id' => 'task',
        'class' => 'form-control select ' . $product_id_calss . ''
    ]) .
'</div>';

此下拉列表位于 foreach 循环中,迭代次数基于产品数量。

我正在使用附加选项进行此操作,但是当我使用类名时,此代码会附加到具有该 ID 的每个产品(但它应该只添加 X 次 - x 在 takeOffProductList->qty 中定义)

<script>
  var data = <?php echo json_encode($takingOffProductList); ?>;
  $.each(data, function (index, value) {
    quantity = $('.' + value.quantity).length;
      for( i=1; i<= quantity; i++){
        $('.' + value.product_id).append('<option value="3"><?=__('Taking off')?></option>');
    }
  });
</script>

我希望我已经清楚地解释了我的问题:) 谢谢!

【问题讨论】:

    标签: jquery


    【解决方案1】:

    如果我正确理解了您的问题: 您想在具有相同类名的下拉列表中附加 x 次相同的选项。如果是这样,那么您可以使用 slice(0, your_count) 获取特定数量 => x 的同名元素。

    解决办法

    <?php if (isset($takingOffProductList)) { ?>
      <script>
        var data = <?php echo json_encode($takingOffProductList); ?>;
        $.each(data, function (index, value) {
          var count = value.quantity;
          $('.' + value.product_id).slice(0, count).append('<option value="3"><?=__('Taking off')?></option>');
        });
      </script>
    <?php } ?>
    

    【讨论】:

      猜你喜欢
      • 2015-08-31
      • 2021-04-18
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      相关资源
      最近更新 更多