2015-01-07 4 views
0

Я пытаюсь загрузить определенную информацию из отдельных звеньев продукции после того, как они были загружены вJQuery - Загрузка содержимого из загруженного контента - .load

Что у меня есть и то, что он делает:

$(function(){ 
    $('.prdContainer .prdHero').each(function(i){ 
     $(this).load(('http://www.domain.com .product:nth-child(' + (i + 1)+ ') .productMainImage'), function(){ 
      $('.prdContainer .prdDesc').each(function(){ 
       var prdLink = $('.prdHero .productMainImage').attr('href'); 

       $(this).load(prdLink + ' ' + '.productHeading'); 
      }); 
     }); 
    }); 
}); 
.

1 - Функция загружает продукт в .prdHero - 3x

2 - Функция получает ссылку и добавляет новую .load

3 - Затем это необходимо загрузить в заголовке, специфичном для продукта, но все 3 загружаются в одни и те же заголовки (первые).

Я чувствую, что мне нужно настроить мою функцию на .prdContainer и использовать $ (это), я просто не знаю, как это сделать?

+1

возможно '$ (this) .find (". PrdHero .productMainImage "). Attr (" href ")' или что-то в этом роде. – Pointy

+1

Каковы конкретные элементы, представленные вашими селекторами? Грубый html-контур помог бы – charlietfl

+0

так много нагрузок .... Разве нет лучшего решения, которое не вызывает так много вызовов Ajax? – epascarello

ответ

1

Без конкретного HTML показывается я должен угадать иерархию, но что-то вроде этого будет использовать известный родительский элемент в качестве начальной точки для каждого поиска:

$(function(){ 
    $('.prdContainer .prdHero').each(function(i){ 
     var $parent = $(this).closest('.prdContainer'); 
     $(this).load(('http://www.domain.com .product:nth-child(' + (i + 1)+ ') .productMainImage'), function(){ 
      $parent.find('.prdDesc').each(function(){ 
       var prdLink = $parent.find('.prdHero .productMainImage').attr('href'); 
       $(this).load(prdLink + ' ' + '.productHeading'); 
      }); 
     }); 
    }); 
}); 

Как уже упоминалось в комментариях, вы, кажется, чтобы иметь слишком много вызовов Ajax. Возможно, показ общей проблемы приведет к лучшему решению?

+0

Спасибо за помощь! Ваши изменения работают точно так, как ожидалось. Я проведу вас через свой код здесь: http://jsfiddle.net/64556vus/ Вы, вероятно, правы, я, скорее всего, делаю слишком много звонков. Действительно новый для Ajax, поэтому я не слишком уверен, что делаю это наилучшим образом! Любой вход был бы замечательным, хотя :) – Nick

+1

Для производственного сайта я бы объединил несколько результатов в отдельные запросы (по крайней мере, информацию о продукте с резюме продукта). Чтобы избежать больших издержек, вы можете получить небольшое количество небольших запросов. Лучше иметь несколько больших запросов. –

Смежные вопросы