选择元素通过jquery进行迭代,第一个保持不变

哈夫苏尔·马鲁(Hafsul Maru)

视图的一部分是这样的

  <div id="edit_selected_attributes">
 <div>
  <select class="form-control edit-select-attribute" id="edit_inv_attribute_id_9">
 <option> Select  Com Weight</option>
 <option value="12">1</option>
 <option value="13">2</option>
 <option value="14">3</option></select>
</div>
<div>
 <select class="form-control edit-select-attribute" id="edit_inv_attribute_id_11">
 <option> Select  Composition</option>
 <option value="15">1</option>
 <option value="16">2</option>
 <option value="17">3</option>
</select>
</div>
<div>
<select class="form-control edit-select-attribute" id="edit_inv_attribute_id_12">
<option> Select  Composition</option>
<option value="18">1</option>
<option value="19">2</option>
<option value="20">3</option>
 </select></div>
<div>
<select class="form-control edit-select-attribute" id="edit_inv_attribute_id_16">
<option> Select  Composition</option>
<option value="22">1</option>
<option value="23">2</option>
<option value="24">3</option>
</select></div>
<div>
<select class="form-control edit-select-attribute" id="edit_inv_attribute_id_17">
<option> Select  Composition</option>
<option value="26">1</option>
<option value="27">2</option>
<option value="28">3</option>

然后,我从数据库中检索了两个数字作为字符串,例如“ 12,16,18,22,28”,将它们拆分为数组[12,16,18,22,28]

这样检索和迭代

  $.ajax({
   type: 'post',
    url:"{{url('library/inv_item/get_item_data')}}",
    async:false,
   data:{inv_item_id:inv_item_id},
   success: function(data4){  /* data4 = "12,16,18,22" */                                         
   var data5 = data4.split(',');

   $('.edit-select-attribute').each(function(ind,val){                    
    $.each(data5,function(i5,v5){
     var v5 = parseInt(v5);
       $('.edit-select-attribute').find('option[value='+v5+']').prop({'selected':true},);
   });
   });
  $('#editInvItemDiv').dialog('open');   
   },
  error: function(data5){},                            
   });

在ui对话窗口中显示元素。问题在于,只有最后4个选择元素被迭代,第一个选择框没有被修改。

选择元素

罗里·麦克罗森(Rory McCrossan)

假设返回的字符串中的值的索引select与HTML中的索引的索引匹配,则最简单的方法split()将返回的字符串放入数组中,然后提供一个val()从数组中返回相关值的函数根据当前的指数select尝试这个:

// in your AJAX success handler...
var data4 = "12,16,18,22,28";
var responseArr = data4.split(',');
$('select.form-control').val(function(i) {
  return responseArr[i];
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="edit_selected_attributes">
  <div>
    <select class="form-control edit-select-attribute" id="edit_inv_attribute_id_9">
      <option> Select Com Weight</option>
      <option value="12">1</option>
      <option value="13">2</option>
      <option value="14">3</option>
    </select>
  </div>
  <div>
    <select class="form-control edit-select-attribute" id="edit_inv_attribute_id_11">
      <option> Select Composition</option>
      <option value="15">1</option>
      <option value="16">2</option>
      <option value="17">3</option>
    </select>
  </div>
  <div>
    <select class="form-control edit-select-attribute" id="edit_inv_attribute_id_12">
      <option> Select Composition</option>
      <option value="18">1</option>
      <option value="19">2</option>
      <option value="20">3</option>
    </select>
  </div>
  <div>
    <select class="form-control edit-select-attribute" id="edit_inv_attribute_id_16">
      <option> Select Composition</option>
      <option value="22">1</option>
      <option value="23">2</option>
      <option value="24">3</option>
    </select>
  </div>
  <div>
    <select class="form-control edit-select-attribute" id="edit_inv_attribute_id_17">
      <option> Select Composition</option>
      <option value="26">1</option>
      <option value="27">2</option>
      <option value="28">3</option>
    </select>
  </div>
</div>

另请注意,您应该删除async: false这是非常糟糕的做法,而且您也不需要

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过使第一个插入位置保持不变来对列表中插入的其余元素进行排序?

对整数数组进行排序,保持第一个位置不变

jQuery,如何通过属性的第一个位置值选择元素

为什么对多个流进行迭代仅对第一个元素进行迭代?

计算列表中连续元素之间的差异时,如何保持列表中的第一个元素不变?

如何通过XPath选择第一个和最后一个元素?

从列表中删除第一个“ n”个元素而不进行迭代

如何通过类方法迭代元组列表中每个元组的第一个元素?

如果选择第一个元素,则选择其他元素 jquery

当一个元素没有通过CSS的类时,如何从选择中选择第一个元素?

通过第一个子元素的名称选择HTML元素

选择每组迭代的第一个条件

获取异步迭代的第一个元素

通过第一个元素对两个容器进行同步排序

用下一个迭代中的第一个重复的最后一个元素进行迭代

如何按linq查询对组中的元素进行排序,然后选择第一个?

如何通过使用子元素的ID选择父对象的第一个孩子?

通过Selection.SetElementIds将选择内容修改为第一个元素

在 XSLT 中选择第一个第一个子元素

如何通过第一个元素对象键对数组中的数组进行分组

通过固定第一个元素自定义对列表进行排序

MongoDB聚合:通过_id进行$ lookup,然后获取第一个元素的值

如何通过dataSet Batch的第一个元组字段元素进行keyBy

选择嵌套列表的第一个元素

选择div中的第一个元素

选择第一个孩子的元素

选择几组中的第一个元素

第一个元素的CSS选择器

选择第一个重复的元素