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 包含上关闭 </script>
标记,并且您需要等待 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>
<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@ 标签,不使用ready
。 div
将会存在。这是谷歌和雅虎推荐的。以上是关于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() 加载的内容