0

如何从加载了 $.get 的链接中获取 href 值?我的脚本总是使用 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')

从新加载的链接中获取价值?

4

1 回答 1

0

似乎您正在将元素动态加载到您的 html 中,这样新元素没有附加点击事件,因为您可能将其附加到 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");

你只取属于#moreelement的 html 内容

附加信息

于 2013-02-17T21:28:12.243 回答