将多个选定的值和文本作为数组传递 javascript
Pass multiple selected value and text as an array javascript
我有 select 个字段,我可以从中 select 多个数据。现在我想像数组一样访问该值作为键和值。
let selected_size = $(this).find(":selected").map(function(i, el) {
var value = $(el).val();
var text = $(el).text();
}).get();
我想像这样访问 select 值:
[1=>red,2=>green]
数字将是颜色的实际值。
我试过:
let selected_size = $(this).find(":selected").map(function(i, el) {
var value = $(el).val();
var text = $(el).text();
return [value=>text]
}).get();
但这似乎不起作用。
在JavaScript中,对象通常用于存储Key/value对
这是一个使用 JS 的 Array.prototype.reduce()
的例子
$("select[multiple]").on("input", function() {
const data = $(this).find(":selected").get().reduce((ob, el) => {
ob[el.value] = el.textContent;
return ob
}, {});
console.log(data);
});
<select multiple>
<option value="1">Red</option>
<option value="2">Blue</option>
<option value="3">Green</option>
</select>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
我有 select 个字段,我可以从中 select 多个数据。现在我想像数组一样访问该值作为键和值。
let selected_size = $(this).find(":selected").map(function(i, el) {
var value = $(el).val();
var text = $(el).text();
}).get();
我想像这样访问 select 值:
[1=>red,2=>green]
数字将是颜色的实际值。
我试过:
let selected_size = $(this).find(":selected").map(function(i, el) {
var value = $(el).val();
var text = $(el).text();
return [value=>text]
}).get();
但这似乎不起作用。
在JavaScript中,对象通常用于存储Key/value对
这是一个使用 JS 的 Array.prototype.reduce()
$("select[multiple]").on("input", function() {
const data = $(this).find(":selected").get().reduce((ob, el) => {
ob[el.value] = el.textContent;
return ob
}, {});
console.log(data);
});
<select multiple>
<option value="1">Red</option>
<option value="2">Blue</option>
<option value="3">Green</option>
</select>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>