Jquery - 为一个选项变量赋值。

问题描述 投票:0回答:1

嗨,有没有人知道如何从一个变量赋值?

JQUERY。

for (var dates in date_count) {
   $('.class-date').val(dates).append(`<div class="inner-info"><h4>${dates}</h4><span>${date_count[dates]}</span></div>`);
}

完整的Jquery:你可以参考这个帖子中的逻辑,我试图在这里实现。Jquery匹配值

  $("#course-date").each(function() {
    let date = $('.course-date').map((i, e) => $(e).data('value')).toArray();

    let reducer = (a, c) => {
      // If the date doesn't exist 
      a[c] === undefined ?
        a[c] = 1 : // One occurrence, else
        a[c] = a[c] + 1;  // Increment count
      return a;
    }

    let date_count = date.reduce(reducer, {});

    // Create HTML Elements
     var i = 0;
    for (var dates in date_count) {
      $('.class-date').eq(i).val(dates).append(` ${date_count[dates]}`);
      i++;
    }
  });

我正试图将它分配给一个选项值。

HTML。

<option class="class-date type-filter" value=""></option>
jquery for-loop return-value html-select key-value
1个回答
0
投票

你需要一个带有选项索引的变量,这样你一次只更新一个选项。

然而,这是在创建无效的HTML。你不能把其他元素放在 <option>. 见 是否可以在<选项> 标签内添加<div> 或<span> ?. 在我的下面的代码中,我只是将值附加在上面,而没有将它放在另一个元素中。

var date_count = {
  opt1: "Option 1",
  opt2: "Option 2",
  opt3: "Option 3",
  opt4: "Option 4"
};

var i = 0;
for (var dates in date_count) {
  $('.class-date').eq(i).val(dates).append(` ${date_count[dates]}`);
  i++;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
  <option class="class-date">A</option>
  <option class="class-date">B</option>
  <option class="class-date">C</option>
  <option class="class-date">D</option>
</select>
© www.soinside.com 2019 - 2024. All rights reserved.