仅在此行中选择类 - Jquery

时间:2017-01-01 23:33:52

标签: jquery html

我正在使用依赖下拉选择哪个工作正常, 但我希望它们在一个表中,以便根据需要添加更多行。

我遇到的问题是我使用类来选择下拉列表,因此选项会添加到所有下拉列表中,而不仅仅是当前行。

$(".quote_product").append(option);

主要罪犯和我一直在尝试使用:

$(this).closest('tr').find(".quote_product").append(option);

但这导致空白输出。

我的另一个想法是使用表格行示例#quote_product_1等来应用ID,但是当我尝试时,我一直得到索引(-1)。

HTML如下: `

<tr>
  <td>1</td>
  <td>
    <select class="form-control quote_category">
      <option value="">--Select--</option>
    </select>
  </td>
  <td>
    <select class="form-control quote_product">
      <option value="">--Select--</option>
    </select>
  </td>
  <td>
  <input type="input" name="quote_width" class="form-control quote_width" id="" placeholder="0.00" disabled="" />
  </td>
  <td>
  <input type="input" name="quote_qty" class="form-control quote_qty" id="" placeholder="1.00" />
  </td>
</tr>


<tr>
  <td>2</td>
  <td>
    <select class="form-control quote_category">
      <option value="">--Select--</option>
    </select>
  </td>
  <td>
    <select class="form-control quote_product">
      <option value="">--Select--</option>
    </select>
  </td>
  <td>
  <input type="input" name="quote_width" class="form-control quote_width" id="" placeholder="0.00" disabled="" />
  </td>
  <td>
  <input type="input" name="quote_qty" class="form-control quote_qty" id="" placeholder="1.00" />
  </td>
</tr>


<tr>
  <td>3</td>
  <td>
    <select class="form-control quote_category">
      <option value="">--Select--</option>
    </select>
  </td>
  <td>
    <select class="form-control quote_product">
      <option value="">--Select--</option>
    </select>
  </td>
  <td>
  <input type="input" name="quote_width" class="form-control quote_width" id="" placeholder="0.00" disabled="" />
  </td>
  <td>
  <input type="input" name="quote_qty" class="form-control quote_qty" id="" placeholder="1.00" />
  </td>
</tr>

2 个答案:

答案 0 :(得分:0)

如果您尝试定位特定的下拉列表,我相信您必须使用交叉点选择 例如:

$(this).closest('tr').find('.form-control.quote_product').append(option);

答案 1 :(得分:0)

您尚未提供或告诉我们有关触发添加新选项的机制,因此无法获得完整答案。

但看起来它和你要添加它的选择在同一个tr中?如果是这样,您的$(this).closest('tr').find(".quote_product").append(将会正常运作。

这是一个演示,当您单击任何最右侧的文本框时,会向当前行添加一个选项。您只需要将事件重新连接到按钮或您在该行中放置的任何内容。

$(".quote_qty").on("click", function(){
    $(this).closest('tr').find(".quote_product").append('<option value="3">added option</option>');
});