Я пытаюсь проанализировать некоторые данные XML с помощью jQuery, и как есть Я извлек 'идентификационный' атрибут необходимых узлов и сохранил их в массиве, и теперь я хочу выполнить цикл для каждого участника массива и в конечном счете захватить больше атрибутов из примечаний, характерных для каждого идентификатора.
Проблема в настоящее время состоит в том, что, после того как я добираюсь до 'для' цикла, это не цикличное выполнение, и я думаю, что, возможно, записал данные пути XML неправильно. Это работает однажды, и я получаю 'предупреждение (arrayIds.length)'; только однажды, и это только циклично выполняет корректную сумму времен, если я удаляю последующий код пути XML.
Вот моя функция:
var arrayIds = new Array();
$(document).ready(function(){
$.ajax({
type: "GET",
url: "question.xml",
dataType: "xml",
success: function(xml)
{
$(xml).find("C").each(function(){
$("#attr2").append($(this).attr('ID') + "<br />");
arrayIds.push($(this).attr('ID'));
});
for (i=0; i<arrayIds.length; i++)
{
alert(arrayIds.length);
$(xml).find("C[ID='arrayIds[i]']").(function(){
// pass values
alert('test');
});
}
}
});
});
Какие-либо идеи?
Эта строка недействительна. Вам не хватает имени функции. Это приводит к сбою скрипта.
$(xml).find("C[ID='arrayIds[i]']").(function(){
должно быть (возможно):
$(xml).find("C[ID='" + arrayIds[i] + "']").each(function(){ // Note the added each
Должно быть:
$(xml).find("*[ID=" + arrayIds[i] + "]").each(function(){
// pass values
alert('test');
});
Раньше вы искали id с буквальным значением "arrayIds[i]". Кроме того, идентификаторы уникальны, поэтому вам не нужна буква C, и я изменил ее на стандартный синтаксис jQuery. Также, как сказал Патрик, вам не хватало каждого из них.