jQuery и xml
Совсем измучился, нужна помощь
вот код - $(document).ready(function(){ $.ajax({ type: "GET", url: "011pags.xml", dataType: "xml", success: function(xml) { $('#kod_tovar1').keyup(function(){ $(xml).find("product").each(function() { var id = $(this).attr('id') if ($('#kod_tovar1').val() == id) { $('#nazvanie1').val($(this).attr('name')) $('#kod_tovar1').val($(this).attr('id')) $('#cena1').val($(this).attr('price')) } }); }); } }); }); </script> xml файл - <page addtobag="1" category="12" id="2"> <product height="450" id="48555" name="Набор" price="$0" width="450" x="429" y="0"> <subproduct id="75182" name="Сумка" price="$0"/> <subproduct id="19180" name="Ручка" price="$0"/> </product> </page> как видно у product есть дочка subproduct как вытащить id одновременно у родителя и дочки чтобы потом сравнить с тем что ввел пользователь. |
ну так запускай в цикле еще и цикл по детям у product.
лучше предобработай эти данные сначала, а не бегай по дереву xml при каждом отпускании кнопки: $xml = $(xml); // И формируй следующую структуру: data = {}; data[id] = {}; data[id].name = data[id].price = Эти данные сохрани в переменной объявленной в $(document).ready и обработчик keyup выведи в ready изнутри той функции. |
Спасибо.
Можно поподробней по какому принципу формировать структуру data |
Я вроде написал:
пробегаешь по всем необходимым элементам(которые с id), имеешь им id, name, price. Будет такой: Код:
data[48555].name = 'Набор' id = $(this).val(); if (id in data) { $(что то).val(data[id].name); } |
Мысль уловил спасибо.
А как правильно задать значения для data |
$('[price]').each(function(){ var id = this.id; data[id] = {}; data[id].name = $(this).attr('name'); // ... }); |
Господи все в голове смешалось, пните чтоли.
почему здесь - $('[price]').each(function(){ |
изучайте основы джиквери !!!
Вам что надо - собрать данные с <product> и его <subproduct>. Чтобы не бегать по дереву, я их нахожу как имеющие атрибут price |
Спасибо
|
Что то у меня не получается
$(document).ready(function(){ $('#kod_tovar1').keyup(function(){ $.ajax({ type: "GET", url: "011pags.xml", dataType: "xml", success: function(xml) { $xml = $(xml); $('[price]').each(function(){ var id = this.id; data[id] = {}; data[id].name = $(this).attr('name'); data[id].price = $(this).attr('price'); id = $(this).val(); if (id in data) { $('#nazvanie1').val(data[id].name); $('#cena1').val(data[id].price); } }); } }); }); }); |
Часовой пояс GMT +3, время: 23:04. |