Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript数组/object.push不工作_Javascript_Arrays - Fatal编程技术网

javascript数组/object.push不工作

javascript数组/object.push不工作,javascript,arrays,Javascript,Arrays,输入: 输出: var variants = []; $("div.product[data-variant]").each(function() { variants = [{name:chocolate, url:http://urltochocolate.de; }); $。每个(选项列表、函数(i、el){ 附加(“”+el.name+“”); }); 上面的版本可以工作,但是如果我想通过添加variants.push保存所有变体,而不仅仅是最后一个变体,那么它将无法工作。我

输入:

输出:

var variants = [];
$("div.product[data-variant]").each(function() {
    variants = [{name:chocolate, url:http://urltochocolate.de;
});
$。每个(选项列表、函数(i、el){
附加(“”+el.name+“”);
});
上面的版本可以工作,但是如果我想通过添加variants.push保存所有变体,而不仅仅是最后一个变体,那么它将无法工作。我知道push是一个数组函数,但它如何适用于JS对象?或者,推送是否起作用,但我使用了错误的输出函数

感谢您的任何帮助,这不会如此困难,只是看不到解决方案:(

编辑:

这不是缺少的引号,因为巧克力和url只是jQuery选择器的占位符

$.each(optionList, function (i, el) {
  combo.append('<option value="'+ el.url +'">' + el.name + "</option>");
});

请尝试variants.push({name:x,url:y});添加上面描述的push不会产生任何结果variants.lenght也是0;这意味着您的数据选择器错误try$('div.product:data(variant)')这里我只是在循环中的name和url中提供了新值,而您在代码中给出了相同的值。这是不同之处。:-)
var variants = [];
$("div.product[data-variant]").each(function() {
    var name='name';
    var url='url';
    variants.push({name:name, url: url});
});
You are missing quotes in your json string.
Try like this.
var variants = [];
$("div.product[data-variant]").each(function() {
    variants.push([{name:'chocolate', url:'http://urltochocolate.de'}])
});