使用javascript生成json数组

使用javascript生成json数组,javascript,jquery,json,Javascript,Jquery,Json,我希望根据html页面上的按钮选择生成json字符串 <div id="btnStudios" > <button type="button" id="01" value="warner" class="btn btn-default">Warner</button> <button type="button" id="02" value="tf1" class="btn btn-default">TF1</button> <bu

我希望根据html页面上的按钮选择生成json字符串

<div id="btnStudios" >
<button type="button" id="01" value="warner" class="btn btn-default">Warner</button>
<button type="button" id="02" value="tf1" class="btn btn-default">TF1</button>
<button type="button" id="03" value="gaumont" class="btn btn-default">Gaumont</button>
<button type="button" id="04" value="pathe" class="btn btn-default">Pathe</button>
<button type="button" id="05" value="studiocanal" class="btn btn-default">StudioCanal</button>
<button type="button" id="06" value="francetv" class="btn btn-default">FranceTV</button>
<button type="button" id="07" value="m6snd" class="btn btn-default">M6SND</button>
</div>

<div id = "btnplatforms" class="btn-group">
<button type="button" id = "11" value="orange" class="btn btn-default">Orange</button>
<button type="button" id = "12" value="itunes" class="btn btn-default">iTunes</button>
<button type="button" id = "13" value="sfr" class="btn btn-default">SFR</button>
</div>

$(".btn").click(function() {
$(this).toggleClass('active');
});

华纳
TF1
高蒙特
帕特
研究运河
法国电视台
M6SND
橙色
iTunes
SFR
$(“.btn”)。单击(函数(){
$(this.toggleClass('active');
});
基于按钮的活动状态,我希望结果是例如 {工作室:华纳,高蒙特 平台:橙色,iTunes}

这可以通过javascript实现吗?如果是,怎么做? 提前感谢您的帮助。

您可以尝试以下方法:

var output = {
    Studios: $('#btnStudios button.active').map(function() {
        return $(this).val();
    }).get(),
    Platform: $('#btnplatforms button.active').map(function() {
        return $(this).val();
    }).get()
};
这是。

您可以尝试以下方法:

   var btn_active_array = {
    "Studios" : [],
    "Platform":[]
   };


   $('#btnStudios .btn.active').each(function(index,btn_active){
       btn_active_array["Studios"].push($(btn_active).text());
   });
   $('#btnplatforms .btn.active').each(function(index,btn_active){
       btn_active_array["Platform"].push($(btn_active).text());
   });

jsiddle链接:

非常感谢@jcubic。不过,我也希望默认设置为all select。我试过**(!output.Studios){output.Studios=[“华纳”、“tf1”、“高蒙特”、“帕斯”、“斯图迪运河”、“弗朗西特”、“m6snd”]**你能告诉我如何使用JSFIDLE更好地完成它吗?非常感谢:)工作非常完美。非常感谢。希望有一天至少能达到你的一半:)嗨@jcubic,我这次尝试对列表项执行同样的操作,但我无法将其添加到json字符串中。我得到的输出是“报告”:[0,0]。我希望对列表执行与对按钮执行的操作完全相同的操作。我希望shrOv是默认值,而不是所有选定值。HTML代码是:
  • 我该怎么做呢?希望能像往常一样从你那里得到一个惊人的解决办法:)@TauseefHussain可能value不适用于li元素。尝试使用
    .attr('value')
    或使用
    data value=“shrOv”
    data('value'))
    谢谢:)我可以将字符串设置为默认值吗?如果没有选择,我希望选择所有选项。是:如果(btn_active_array[“Platform”]。长度==0)btn_active_array[“Platform”]。推送(“默认”);或者如果(!btn_active_array[“Platform”.长度)btn_active_array[“Platform”]。推送(“默认”);非常感谢:)你介意我让你在JSFIDLE上完成这件事吗?我的要求可能太高了,但我对这一切都很陌生,仍然掌握着窍门。谢谢你是一种进步:)