这可能是一个简单的答案,但是我在编写这个小小的加载脚本时遇到了一些问题......我想我在某个地方有一个bug,我可以让它清除div,但页面没有加载:
Jquery的:
$(document).ready(function() {
//Load content
$(".load").click(function(){
$("#content").empty();
loadName = $(this).find("a").attr("id");
$("#content").load("/content/" + loadName + ".php");
});
});
HTML:
<div id="select">
<div id="menu">
<ul>
<li><a class="load" href="javascript:void(0)" id="project1">Project 1</a></li>
<li><a class="load" href="javascript:void(0)" id="project2">Project 2</a></li>
</ul>
</div>
</div>
<div id="content"></div>
这两个php文件都位于这样的链接上(注意这些只是虚拟名称而不是实际链接):
http://www.hostname.com/content/project1.php
http://www.hostname.com/content/project2.php
答案 0 :(得分:2)
我认为你的loadName行应该是这样的:
var loadName = $(this).attr("id"); // didn't see a declaration in your code
答案 1 :(得分:2)
由于您定义了$('.load')
,因此您无需为find('a')
执行$(this)
。只需使用$(this).attr('id')
答案 2 :(得分:1)
jquery的find()“不会搜索所选元素,只搜索它们的后代。”
看起来你已经有了“this”指向你的“a”元素,所以摆脱了find()。