JQuery загрузить информацию из элементов в разных элементах

Как получить значение href по ссылке, загруженной с помощью $.get? Мой скрипт всегда использует значение, которое раньше было в div, а не значение, которое было загружено впоследствии.

Код:

<html>
<body>
<div id="wrapper">
  <div id="more">
    content
  </div>
  <div class="paglink">
    <a href="/the/url/to/page/1">More</a>
  </div>
</div>
<script>
jQuery(document).ready(function($) {

     $(".paglink a").click(function(e) {
          e.preventDefault();
          $.get($(".paglink a").attr('href'), function(data){ 
            $(data).find("#more").appendTo("#more");
            $(".paglink").html($(data).find(".paglink").html());
          });     
     });

});
</script>
</body>
</html>

Страница, которая загружается:

<html>
<body>
<div id="wrapper">
  <div id="more">
    content
  </div>
  <div class="paglink">
    <a href="/the/url/to/page/2">More</a>
  </div>
</div>
</body>
</html>

Короче говоря: что я должен написать вместо

$(".paglink a").attr('href')

получить значение из только что загруженной ссылки?

1 ответ

Кажется, что вы динамически загружаете элементы в html, таким образом, у новых элементов нет прикрепленного к ним события click, потому что вы, вероятно, прикрепляете его к document.Ready()..

В jQuery есть "on" API, который вы можете использовать для добавления событий щелчка к динамически загружаемым элементам DOM.

Попробуйте этот код

$(".paglink").on('click' , 'a', function(e) {
          e.preventDefault();
          $.get($(this).attr('href'), function(data){
              alert(data);
            $(data).find("#more").appendTo("#more");
            $(".paglink").html($(data).find(".paglink").html());
          });   
 });

Этот код является правильным

$(data).find("#more").appendTo("#more");

Вы берете только HTML-контент, который принадлежит #more элемент

Дополнительная информация

Другие вопросы по тегам