Простой вопрос, я уверен, но я не могу понять его.
У меня есть несколько JSON, возвращенных с сервера
while ($Row = mysql_fetch_array($params))
{
$jsondata[]= array('adc'=>$Row["adc"],
'adSNU'=>$Row["adSNU"],
'adname'=>$Row["adname"],
'adcl'=>$Row["adcl"],
'adt'=>$Row["adt"]);
};
echo json_encode(array("Ships" => $jsondata));
... который я использую на стороне клиента при вызове ajax. Следует отметить, что JSON анализируется в глобально объявленном объекте, который будет доступен позже, и что я предположил, что вы знаете, что я правильно сформировал вызов ajax ...
if (ajaxRequest.readyState==4 && ajaxRequest.status==200 || ajaxRequest.status==0)
{
WShipsObject = JSON.parse(ajaxRequest.responseText);
var eeWShips = document.getElementById("eeWShipsContainer");
for (i=0;i<WShipsObject.Ships.length;i++)
{
newElement = WShipsObject.Ships;
newWShip = document.createElement("div");
newWShip.id = newElement[i].adSNU;
newWShip.class = newElement[i].adc;
eeWShips.appendChild(newWShip);
} // end for
}// If
Вы можете увидеть, например, здесь, что я создал элементы HTML DIV внутри родительского div, где каждый новый div имеет id и класс. Вы также заметите, что я не использовал все данные, возвращенные в объекте ...
Я использую JQuery для обработки щелчка по объекту, и вот моя проблема: я хочу использовать идентификатор элемента для возврата другого значения, например, adt
значение из JSON с тем же индексом , Беда в том, что при событии click я больше не знаю индекс, потому что это путь после создания элемента. т.е. я больше не в цикле for
.
Так как мне это сделать?
Вот то, что я пытался, но я думаю, что я ошибся деревом ... .inArray()
возвращает минус 1 в обоих тестовых случаях. Помните, что объект доступен во всем мире ...
$(".wShip").click(function(){
var test1 = $.inArray(this.id, newElement.test);
var test2 = $.inArray(this.id, WShipsObject);
//alert(test1+"\n"+test2+"\n"+this.id);
});