jQueryEachLoop将数据推送到JSON对象中



有人能告诉我这里做错了什么吗。我在屏幕上有几个.cp_select类的元素。我需要循环浏览它们并获取";x〃;以及";y";。这本身就很好。然后,我需要组装一个带有子数组positionsJSONobj,并将每个循环的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在服务器中运行,JS在客户端中运行,因此您无法在PHP中使用var poz。

您需要发送一个XHR请求来捕获服务器端的值。

相关内容

  • 没有找到相关文章

最新更新