【问题标题】:jQuery .load() not workingjQuery .load() 不工作
【发布时间】:2013-02-12 23:08:05
【问题描述】:

在我的网站上,我正在尝试使用 jQuery 在我的论坛(托管在同一域上)中提取帖子的内容并将其显示在主页上的 div 中。

这是标题的代码:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">

<script type="text/javascript">
jQuery("#contain").load("http://examplepage.com/forum/showthread.php?tid=NN #pid_NN");
</script>

然后,我要显示帖子的 div:

<div id="contain"></div>

需要考虑的事项:

  • 库加载正常。
  • 如果我输入任何其他代码,它就会起作用(例如测试 alert(1);)。
  • 控制台不报告任何错误。
  • div 保持空白;事实上,它甚至没有显示。但它就在那里。

我做错了什么?

【问题讨论】:

  • 那里真的有空位吗:tid=NN #pid_NN
  • 空间应该在那里,阅读 load() 的手册
  • 为什么这被否决了? OP 显示了已做出努力的每一个迹象,并清楚地描述了问题。
  • //ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js 必须是 http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
  • @s.lenders // 很好。表示使用与页面相同的协议,无论是http://还是https://

标签: jquery url html dns load


【解决方案1】:

检查此代码。您应该在容器 ID 之后使用“>*”来在页面上加载特定于内容的容器。

jQuery('#contain').load("http://example.com/pageurl #somecontaineronpage >*",function(){
      //after loading completion code goes here                      
});

希望,这会有所帮助

【讨论】:

    【解决方案2】:

    .load 可以单独传递您的 GET 参数:

    .load("link to php", "http://examplepage.com/forum/showthread.php", "tid=NN#pid_NN")
    

    【讨论】:

      【解决方案3】:

      您需要在您的 jQuery 包含上关闭 &lt;/script&gt; 标记,并且您需要等待 dom 加载。

      JS

      <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
      
      <script type="text/javascript">
          jQuery(document).ready(function(){
              jQuery("#contain").load("http://examplepage.com/forum/showthread.php?tid=NN#pid_NN");
          });
      </script>
      

      HTML

      <div id="contain"></div>
      

      【讨论】:

      • 您不需要使用ready。您可以将script 标签放在load 之后 div。事实上,这是更好的方法。 ready 实际上只适用于您无法控制 script 标记位置的代码。
      【解决方案4】:

      你的代码应该是这样的

      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
      

      js代码

       <script type="text/javascript">
         jQuery(document).ready(function(){
             jQuery("#contain").load("http://examplepage.com/forum/showthread.php?tid=NN #pid_NN");
         });
      </script>
      

      【讨论】:

      • 其实这第二部分是有可能的。 @TW_,您的script 标签 after 是您在 HTML 中的 div 吗?如果没有,请将其移到那里(或如上所述使用ready,但如果您控制script 标签的位置,那真的没有必要)。
      • 甜蜜!非常感谢;我从来没有想过 jquery 本身需要单独调用。我对这个东西很陌生。 :) 考虑几分钟后接受的答案。
      • @TW_: jQuery 不需要 需要单独“调用”。上面的ready 所做的是延迟执行load,直到所有的HTML 都被解析并创建了DOM 元素。您的代码在创建 div 之前正在运行,因此 jQuery 找不到 div(因为它还不存在)。虽然您可以使用ready 来处理这个问题,但如果您可以控制script 标记的位置,最好将其放在页面底部,就在@ 之前987654333@ 标签,不使用readydiv 将会存在。这是谷歌和雅虎推荐的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      相关资源
      最近更新 更多