javascript - 在jquery中加载作为参数传递的html文件?

标签 javascript jquery html

我是 jquery 的新手。我正在尝试创建一个页面,该页面加载内容而无需重新加载页面。在我的测试页面中,我有 2 个链接,即链接 1 和链接 2。单击默认页面时。它只是说“你好”。当单击任一链接时,它应该显示“Hello link1”(如果单击 link1),“Hello link2”(当单击 link2 时)。 Link1 内容(html)位于 link1.html 文件中,link2 内容位于 link2.html 文件中。每当单击任一链接时,都应将链接的 html 页面名称作为参数传递。 这就是我所做的:

<head>
<title>Ajax Practice</title>
<script type="text/javascript" src="scripts/jquery.js"></script> 
<script type="text/javascript">                                         
   $(document).ready(function(){
    $("a").click(function test(filename){
         alert(filename);
         var b = $("a").attr("title");
         alert(b);
         //$('#menuContents').load($(filename)).fadeIn("slow");
         //$('#menuContents').load('link1.html').fadeIn("slow");
         $('#menuContents').load(b).fadeIn("slow");
    });
   });
</script>
</head>

<body>
<div id="page-wrap">
    <div id="menu">
        <a href="javascript:test('link1.html');" title="link1.html">link1</a>
        <a href="#" title="">link2</a>      
    </div>
    <div id="menuContents">
        <h1>Hello!</h1>
    </div>
</div>

</body>
</html>

问题是,如果我只是将 html 文件的名称作为参数传递,它不会被读取为字符串值,而是会被读取为对象。代码中的第一个警报将给出 [object Object] 消息。我可以使用 .attr 属性从链接标题中读取文本,并可以使用 .load 属性加载页面。我还可以通过直接在 .load 属性中给出 html 页面名称(在代码中注释掉)来更改页面内容。

谁能告诉我如何将 html 页面的名称作为参数传递,而不是硬编码或读取标题?

谢谢。

最佳答案

如果您使用服务器端脚本(例如 PHP),您可能需要研究 jQuery 的 $.ajax()

关于javascript - 在jquery中加载作为参数传递的html文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6515089/

相关文章:

html - 如何在悬停时更改文本框内容

javascript - 单击复选框的文本描述仅切换第一个复选框

jquery - ASP.NET MVC jQuery : Shoud we be concerned about a lot of jQuery/javascript on a View?

html - div溢出

javascript - 过滤搜索结果

javascript - 访问数组中的对象

javascript - 想要在单击 html 时显示特定的 div

javascript - 如何使用 cgi python 脚本获取基本身份验证用户名?

javascript - 按钮单击音频启动和停止JS

javascript - React/Jest - 模拟获取并等待 componentDidMount 重新渲染