jQuery .load() 不工作

Posted

技术标签:

【中文标题】jQuery .load() 不工作【英文标题】:jQuery .load() not working 【发布时间】: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:// 【参考方案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 将会存在。这是谷歌和雅虎推荐的。

以上是关于jQuery .load() 不工作的主要内容,如果未能解决你的问题,请参考以下文章

turbolinks:load 事件在本地机器上工作而不是在 Heroku 上

jQuery 1.8.1 - live, livequery, on + change 不工作

jQuery Ajax 在 IE 6/7/8 中不工作,在 FF/Safari/Chrome 中工作

在 div 中实现 jQuery,该 div 包含刚刚用 jQuery 的 .load() 加载的内容

如果在 div 中找到两个类,我想删除类,使用 jQuery 函数我尝试过但不工作

jQuery中ready与load事件的区别