jQuery将元素追加到具有相同类名的X下拉列表中

时间:2017-06-13 14:44:22

标签: jquery

每个产品我有1到20个dropbox,每个产品都有相同类名的dropbox(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循环中,迭代次数基于产品质量。

我使用append选项进行此操作,但是当我使用类名时,此代码会附加到具有该id的每个产品(但它应仅添加X次 - x在takingOffProductList-&gt; 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>

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

1 个答案:

答案 0 :(得分:1)

如果我已正确理解您的问题: 您希望在具有相同类名的下拉列表中附加x倍相同的选项。如果是这样,那么您可以使用x来获取特定金额=&gt; <?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 } ?> 具有相同名称的元素。

这是解决方案

dt