我是JSON的新手,我正在尝试创建一个json数组,我可以将其发送到php文件进行处理。我希望json看起来与下面类似。
{"clubs":[
{"number":"12", "type":"break"},
{"number":"4", "type":"group"},
{"number":"87", "type":"tring"},
{"number":"7", "type":"samestuff"}
]}
我可以将元素放到一个数组中,但它是这样的: 类型:断裂,编号:12,类型:组,号:4,类型:特林,编号:87,类型:samestuff,数:7
任何人都可以修复此问题,以便创建数字/类型的json数组吗?我已在下面附上我目前的代码。
$(document).ready(function() {
$("#testbutton").click(function() {
var clubs = [];
$(".spanme").each(function() {
var myarray = [];
var type = $(this).data("type");
myarray.push("type:"+type);
var number = $(this).data("number");
myarray.push("number:"+number);
clubs.push(myarray);
});
console.log(clubs)
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="testbutton">Test button</button>
<span class="spanme" data-number="12" data-type="break">span </span>
<span class="spanme" data-number="4" data-type="group">span </span>
<span class="spanme" data-number="87" data-type="tring">span </span>
<span class="spanme" data-number="7" data-type="samestuff">span </span><br/>
提前感谢您的帮助
答案 0 :(得分:1)
使用querySelectorAll
获取普通班级的所有范围&amp;使用map
将返回一个数组。使用展开...
将允许使用map
等数组方法。使用data
getAttribute
属性
var x = [...document.querySelectorAll('.spanme')].map(function(item) {
return {
"numbers": item.getAttribute('data-number'),
"type": item.getAttribute('data-type')
}
})
var someObj = {
"clubs": x
}
console.log(someObj)
<button id="testbutton">Test button</button>
<span class="spanme" data-number="12" data-type="break">span </span>
<span class="spanme" data-number="4" data-type="group">span </span>
<span class="spanme" data-number="87" data-type="tring">span </span>
<span class="spanme" data-number="7" data-type="samestuff">span </span><br/>
答案 1 :(得分:1)
您可以将元素映射到结果的对象中。
$(document).ready(function() {
$("#testbutton").click(function() {
var result = {
clubs: $('.spanme').map(function(){
return { number: this.getAttribute('data-number'), type: this.getAttribute('data-type') };
}).get()
};
console.log(result);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="testbutton">Test button</button>
<span class="spanme" data-number="12" data-type="break">span </span>
<span class="spanme" data-number="4" data-type="group">span </span>
<span class="spanme" data-number="87" data-type="tring">span </span>
<span class="spanme" data-number="7" data-type="samestuff">span </span><br/>
&#13;
答案 2 :(得分:0)
您需要将const purchase = +row.pricePurchase;
row.priceList = purchase + (purchase * +row.markUp / 100);
数据放入数组push
。因此,首先使用clubs
键创建object
,然后将对象形式的值推送到此数组。您可以使用clubs
创建对象。
{}
&#13;
$(document).ready(function() {
$("#testbutton").click(function() {
var obj = {'clubs': []};
$(".spanme").each(function() {
var type = $(this).data("type");
var number = $(this).data("number");
obj.clubs.push({type, number});
});
console.log(obj)
});
});
&#13;
或者,您可以使用返回数组的<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="testbutton">Test button</button>
<span class="spanme" data-number="12" data-type="break">span </span>
<span class="spanme" data-number="4" data-type="group">span </span>
<span class="spanme" data-number="87" data-type="tring">span </span>
<span class="spanme" data-number="7" data-type="samestuff">span </span><br/>
。
map()
&#13;
$("#testbutton").click(function() {
var obj = { clubs: $('.spanme').map(function(){
return {type : $(this).data("type") , number : $(this).data("number")};
}).get()};
console.log(obj)
});
&#13;