将它们全部单独输出到控制台后,如何创建一组项目?
Posted
技术标签:
【中文标题】将它们全部单独输出到控制台后,如何创建一组项目?【英文标题】:How do I create an array of items after outputting them all individually to the console? 【发布时间】:2021-08-31 08:12:42 【问题描述】:正如您现在所看到的,代码的结果是将选项列表的每个值输出到控制台。但是我希望它们被分组到一个数组变量中,而不是一个一个输出它的代码。任何帮助表示赞赏,谢谢!
(function($)
$('.request-poc').attr('href', function()
var product = $(this).attr("data-product");
return this.href + '?product=' + product;
);
if ($('body.request-poc').length > 0)
function GetURLParameter(sParam)
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
return sParameterName[1];
var product = GetURLParameter('product');
console.log(product)
$('#product').val(product);
Array.from(document.querySelector("#product").options).forEach(function(option_element)
let option_value = option_element.value;
console.log(option_value);
);
)(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body class='request-poc'>
<h1>Dummy</h1>
<form action="#">
<select name="Select product" id="product">
<option value="SHOES">Shoes</option>
<option value="SHIRT">Shirt</option>
<option value="JUMPER">Jumper</option>
<option value="SOCKS">Socks</option>
<option value="JEANS">Jeans</option>
<option value="OTHER">Other</option>
</select>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="script.js"></script>
</body>
【问题讨论】:
您的问题确实与控制台无关。这只是一种干扰。 【参考方案1】:您可以声明一个空数组并将所有选项压入其中。
(function ($)
$(".request-poc").attr("href", function ()
var product = $(this).attr("data-product");
return this.href + "?product=" + product;
);
if ($("body.request-poc").length > 0)
function GetURLParameter(sParam)
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split("&");
for (var i = 0; i < sURLVariables.length; i++)
var sParameterName = sURLVariables[i].split("=");
if (sParameterName[0] == sParam)
return sParameterName[1];
var product = GetURLParameter("product");
console.log(product);
$("#product").val(product);
const arr = [];
Array.from(document.querySelector("#product").options).forEach(function (
option_element
)
arr.push(option_element.value);
);
console.log(arr);
)(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body class='request-poc'>
<h1>Dummy</h1>
<form action="#">
<select name="Select product" id="product">
<option value="SHOES">Shoes</option>
<option value="SHIRT">Shirt</option>
<option value="JUMPER">Jumper</option>
<option value="SOCKS">Socks</option>
<option value="JEANS">Jeans</option>
<option value="OTHER">Other</option>
</select>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="script.js"></script>
</body>
【讨论】:
正是我想要的,谢谢你的帮助!完全按预期工作。非常感谢!【参考方案2】:你能不能在你的 foreach 循环之外设置一个空数组,然后在循环中推送它
示例将是(未测试)
var test =[]
Array.from(document.querySelector("#product").options).forEach(function(option_element)
let option_value = option_element.value;
console.log(option_value);
test.push(option_value)
);
【讨论】:
以上是关于将它们全部单独输出到控制台后,如何创建一组项目?的主要内容,如果未能解决你的问题,请参考以下文章