在单击 href 时编写 HTML
write html when a href is clicked
在一个无序列表中,我有一些a和一些href。单击时,我希望从外部文件中写入一些html。我不能使用任何服务器端语言,因为它只会在本地运行。
我的文件结构是:
<body>
<ul>
<li><a href="#">item1</li>
<li><a href="#">item2</li>
<li><a href="#">item3</li>
<li><a href="#">item4</li>
</ul>
<div id="content">
<!-- when a link is clicked write some html from external file to this spot-->
</div>
</body>
</html>
提前致谢
由于您看起来像是在尝试加载脚本,因此有一种更好的方法,通过使用jQuery.getScript()
:
$('#triangle').click(function() {
$.getScript("js/triangle.js");
});
此外,正如 arieljuod 指出的那样,您实际上并没有在 HTML 文件中加载 jQuery。您需要这样做才能使用它:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
(或者选择你最喜欢的jQuery版本和CDN;这是众多之一。
你不想要document.write()
.
您可能希望这样做,具体取决于您希望新 HTML 的位置:
$('head').append('<script src="js/square.js"></script>');
您可以侦听对某个项目的单击,并基于该单击触发对相应文件的 ajax 调用。在成功回调中将该文件的内容加载到您的内容div 中。
很高兴在这里实时引导您完成示例代码:https://sudonow.com/session/525cb34035e089113700000a
将代码编辑器的内容粘贴到此处:
<body>
<ul>
<li id="item1" class="item"><a href="#">item1</li>
<li id="item3" class="item"><a href="#">item2</li>
<li id="item4" class="item"><a href="#">item3</li>
<li id="item5" class="item"><a href="#">item4</li>
</ul>
<div id="content">
<!-- when a link is clicked write some html from external file to this spot-->
</div>
</body>
</html>
//JS
//convert some file content to html
var genHtmlContent = function(content){
//do something here depending on how data is stored e.g. we could just return an html string from some keyvalue json
return content.htmlContent;
}
//Use javascript to detect a click on a list item and grab the appropriate content
$("item").click(function(event){
var selectedId = event.target.id;
var url = "http://www.mysite.com/" + selectedId + ".json";
$.get(url, function(content) {
var htmlContent = genHtmlContent(content);
$("#content").val(htmlContent);
})
})
//sample json file on server
//item1.json
{htmlContent: "<div>I am Item 1</div>"}
一个快速简便的解决方案将是iframe
。根据需要添加任意数量的 iframe,每个 iframe 都有不同的 URL。给它们一个公共类,并使用CSS或jQuery隐藏它们。单击链接时,防止默认并显示相应的 iframe,例如;
<ul>
<li><a href="#" id="item1">item1</li>
</ul>
<div id="content">
<iframe class="iframes" id="iframe1" src="http://www.page1.com"></iframe>
</div>
在你的 JavaScript 中,添加这个;
$('.iframes').hide();
$('#item1').click(function() {
event.preventDefault();
$('#iframe1').show();
});
相关文章:
- 如何通过单击html按钮获得h1的文本值
- 单击和dblclick在同一个html上传递不同的parentNodes.为什么?
- 单击鼠标,用MySQL数据填充html表单输入字段
- 编辑弹出窗口的HTML的单击命令
- 我们可以在HTML中禁用右键单击锚标记吗
- 使用jquery插入动态HTML后,单击不起作用
- 单击HTML展开框
- javascript,HTML表单:单击按钮插入NULL
- Javascript单击更改HTML的内容
- HTML按钮在单击时表现得很奇怪
- 一个html/javascript'小工具'知道用户何时单击了小部件外的任意位置
- HTML:禁用时可以单击锚点
- 单击按钮添加HTML表单
- 单击扩展图标时打开popup.html
- 如何确定使用 javascript/html 单击了哪个对象/图像
- HTML 单击将文本框值追加到链接
- 如何在 Node.js 中从客户端调用服务器端函数(例如.html单击按钮)
- 这只会删除表中的第一行.我希望它删除我使用jQuery和html单击的任何行
- 使用JS或HTML单击单选按钮更改图像
- Html单击事件没有在页面上显示结果(通过使用JavaScript)