jQuery 每个循环将数据推送到 JSON 对象
jQuery Each Loop to push data into JSON Object
任何人都可以建议我在这里做错了什么。我在屏幕上有几个元素 class .cp_select
。我需要遍历它们并获取“x”和“y”的属性。这本身就可以正常工作。然后我需要 assemble 一个 JSON
obj 和一个子数组子 positions
并将每个循环 x/y 集推入其中。然后我将 PHP 中的数组与 json_decode()
一起使用,遍历子 positions
并在 PHP 端处理它。我就是想不通。有什么想法吗?
$(".pix_select_btn").click(function() {
var poz = {}
var poz_xy = {}
$(".cp_select").each(function() {
var pix = $(this)
poz_xy = {"x" : pix.attr("x"), "y" : pix.attr("y")};
poz['positions'].push(pos_xy)
});
alert(JSON.stringify(poz))
console.log();
})
您必须先创建数组,然后才能将其压入。
$(".pix_select_btn").click(function() {
var poz = {positions: []}
$(".cp_select").each(function() {
var pix = $(this)
var poz_xy = {
"x": pix.attr("x"),
"y": pix.attr("y")
};
poz.positions.push(pos_xy)
});
console.log(JSON.stringify(poz));
})
您也可以使用 map()
来简化它。
$(".pix_select_btn").click(function() {
var poz = {
positions: $(".cp_select").map(function() {
var pix = $(this)
return {
"x": pix.attr("x"),
"y": pix.attr("y")
};
}).get(); // .get() converts from jQuery object to array
}
console.log(JSON.stringify(poz));
})
请记住,PHP 运行s 在服务器和 JS 运行 在客户端,所以你不能在 PHP 中使用 var poz。
您需要发送一个 XHR 请求来捕获服务器端的值。
任何人都可以建议我在这里做错了什么。我在屏幕上有几个元素 class .cp_select
。我需要遍历它们并获取“x”和“y”的属性。这本身就可以正常工作。然后我需要 assemble 一个 JSON
obj 和一个子数组子 positions
并将每个循环 x/y 集推入其中。然后我将 PHP 中的数组与 json_decode()
一起使用,遍历子 positions
并在 PHP 端处理它。我就是想不通。有什么想法吗?
$(".pix_select_btn").click(function() {
var poz = {}
var poz_xy = {}
$(".cp_select").each(function() {
var pix = $(this)
poz_xy = {"x" : pix.attr("x"), "y" : pix.attr("y")};
poz['positions'].push(pos_xy)
});
alert(JSON.stringify(poz))
console.log();
})
您必须先创建数组,然后才能将其压入。
$(".pix_select_btn").click(function() {
var poz = {positions: []}
$(".cp_select").each(function() {
var pix = $(this)
var poz_xy = {
"x": pix.attr("x"),
"y": pix.attr("y")
};
poz.positions.push(pos_xy)
});
console.log(JSON.stringify(poz));
})
您也可以使用 map()
来简化它。
$(".pix_select_btn").click(function() {
var poz = {
positions: $(".cp_select").map(function() {
var pix = $(this)
return {
"x": pix.attr("x"),
"y": pix.attr("y")
};
}).get(); // .get() converts from jQuery object to array
}
console.log(JSON.stringify(poz));
})
请记住,PHP 运行s 在服务器和 JS 运行 在客户端,所以你不能在 PHP 中使用 var poz。
您需要发送一个 XHR 请求来捕获服务器端的值。