在服务器端,我从MySql提供表数据,然后将其与json_encode一起发送给JQuery:
<?php
include 'DB.php';
$result20 = mysql_query("SELECT * FROM Gallery WHERE Section = 'Chosen' AND ID = 19");
$array20 = mysql_fetch_row($result20);
$result19 = mysql_query("SELECT * FROM Gallery WHERE Section = 'Chosen' AND ID = 19");
$array19 = mysql_fetch_row($result19);
$data = array();
$data['Div20'] = $array20;
$data['Div19'] = $array19;
echo json_encode($data);
?>
json_encode导出此数组:{“Div20”:[“Image20”,“20.jpg”],“Div19”:[“Image19”,“19.jpg”]}
但是,在客户端我需要使用循环来使用事件中的所有数组。当我使用它时,它不适用于多个数组,怎么做?
$(function() {
$.get('data.php' ,function(response)
{
var data = jQuery.parseJSON(response);
var array;
for(array in data)
{
var ImageID = data.array[0];
var ImageSrc = data.array[1];
$('#'+ImageID ).click(function(){
//some codes
})
}
})
})
答案 0 :(得分:1)
如果您将#
添加到imageid
,
$('#'+ImageID ).click(function(){
//some codes
});
我为你尝试了一些代码,
var json={"Div20":["Image20","20.jpg"],"Div19":["Image19","19.jpg"]};
for(div in json){
ImageID=json[div][0];
ImageSRC=json[div][1];
$('#'+ImageID)
.attr('src',ImageSRC)
.click(function(){
alert(this.src);
});
}
答案 1 :(得分:1)
试试这个
$(function() {
$.get('data.php' ,function(response) {
var data = jQuery.parseJSON(response);
$.each( data, function( key, value) {
var ImageID = value[0];
var ImageSrc = value[1];
$("#"+ImageID ).click(function(){
//some codes
})
})
})
答案 2 :(得分:0)
将.array
替换为for循环中的[array]
:
for(array in data)
{
var ImageID = data[array][0];
var ImageSrc = data[array][1];
}
答案 3 :(得分:0)
“array”不是json对象的属性,它只是for ... in循环的参数。因此,您必须将其用作动态值。此外,您错过了使用#来正确定位元素ID。
var data = {"Div20":["Image20","20.jpg"],"Div19":["Image19","19.jpg"]};
for(array in data)
{
var ImageID = "#"+data[array][0];
var ImageSrc = data[array][1];
$(ImageID).on("click",function(){
//some codes
});
};
避免使用上面推荐的$ .each()循环,jQuery循环通常比本机循环慢。
答案 4 :(得分:0)
试试这个..
$(function() {
$。get('data.php',函数(响应) {
var data = jQuery.parseJSON(response);
$.each(data,function(k, v){
var ImageID = v[0];
var ImageSrc = v[1];
$('#'+ImageID ).click(function(){
//some codes`enter code here`
})
}) })