javascript - 获取所有选定的项目以及在 jquery 中单击它的位置
问题描述
我需要选择选定的选项以及单击它们的位置以使用 jquery 存储信息。
我需要知道两个星期都点击了哪些选项,例如,人为第 1 周选择了选项 1 和 2,为第 2 周选择了选项 3 和 4
在 jquery 中选择它的最佳方法是什么,目前我正在选择所有选定的选项,如下所示:
let selected = $("select > option:selected")
.map(function () {
return this.value;
})
.get();
<table id="table_id">
{foreach from=$DATA_EXAMPLES key=key item=DATA_EXAMPLE}
<th>{$DATA_EXAMPLE}</th>
<td>
<select id="option_id" name="options_name" multiple size="5">
{foreach from=$SOME_DATAS item=SOME_DATA}
<option value="{$SOME_DATA}">{$SOME_DATA}</option>
{/foreach}
</select>
</td>
{/foreach}
</table>
解决方案
要执行您需要的操作,将数组单独映射到选择上,而不是它们选择的选项上。这将构建一个二维数组,每个选择一个子项。
$('select').on('change', () => {
let selected = $("select").map((i, el) => [$(el).val()]).get();
console.log(selected);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="table_id">
<th>Week 1</th>
<td>
<select name="options_name" multiple size="5">
<option value="Option 1">Option 1</option>
<option value="Option 2">Option 2</option>
<option value="Option 3">Option 3</option>
<option value="Option 4">Option 4</option>
<option value="Option 5">Option 5</option>
</select>
</td>
<th>Week 2</th>
<td>
<select name="options_name" multiple size="5">
<option value="Option 1">Option 1</option>
<option value="Option 2">Option 2</option>
<option value="Option 3">Option 3</option>
<option value="Option 4">Option 4</option>
<option value="Option 5">Option 5</option>
</select>
</td>
</table>
在我想将其标记为以下情况的情况下:第 1 周:选项 1、选项 2 等。第 2 周:选项 3、选项 4 等
在这种情况下,您可以构建一个由兄弟th
元素中的值作为键的对象:
$('select').on('change', () => {
let selected = $("select").map((i, el) => ({
[el.parentElement.previousElementSibling.textContent]: $(el).val()
})).get();
console.log(selected);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="table_id">
<th>Week 1</th>
<td>
<select name="options_name" multiple size="5">
<option value="Option 1">Option 1</option>
<option value="Option 2">Option 2</option>
<option value="Option 3">Option 3</option>
<option value="Option 4">Option 4</option>
<option value="Option 5">Option 5</option>
</select>
</td>
<th>Week 2</th>
<td>
<select name="options_name" multiple size="5">
<option value="Option 1">Option 1</option>
<option value="Option 2">Option 2</option>
<option value="Option 3">Option 3</option>
<option value="Option 4">Option 4</option>
<option value="Option 5">Option 5</option>
</select>
</td>
</table>
推荐阅读
- pandas - 使用熊猫数据框绘制多个数据时,Y轴无序
- ios - Swift 如何在变量闭包中干燥代码?
- apache-kafka - 本地主机上的连接被拒绝:2181
- python - Seaborn 的散点图和 lmplot 参数的差异
- string - 有哪些好的算法可以生成最小长度的唯一哈希
- reactjs - 如何提交输入并使用 onBlur 恢复其价值?
- javascript - 多个地理编码 API 调用和非常慢的代码
- c++ - 如何将值作为字符串从类文件传输到输出文件?
- javascript - amcharts,仅在缩小时禁用平移
- ios - CMSensorRecorder 未获得授权,但从未提示我授权?