javascript - 点击后如何将标签中的文本设置为url?
问题描述
我的 HTML 是
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="./styles/styles.css" />
<title>MrSrv7</title>
</head>
<body>
<div id="slideContainer"></div>
<script src="./script.js"></script>
</body>
</html>
脚本是
var slides = ["slide 1", "slide 2", "slide 3", "slide 4", "slide 5"]
var str = '<ul>'
slides.map((slide, index)=> {
str += "<li> <a href='?'>"+ slide + '</a> </li>'; // I need to set the href
attribute so that whatever link is clicked, the text in it must be appended
URL bar.
console.log(index)
});
str += '</ul>';
document.getElementById("slideContainer").innerHTML = str;
例如:如果用户单击 slide1 链接,则 URL 必须是http://127.0.0.1:5500/index.html#slide1
如果用户单击 slide5 链接,则 URL 必须是http://127.0.0.1:5500/index.html#slide5
解决方案
我希望以下内容对您有用。
var slides = [
{ link: 'https://www.google.com.tr/', title: 'Google' },
{ link: 'https://www.google.com.tr/', title: 'Google' },
{ link: 'https://www.google.com.tr/', title: 'Google' }
]
function getLinkItem(link, title) {
var el = document.createElement("li")
el.innerHTML = "<a href='" + link + "'>" + title + "</a>";
return el
}
for(var i = 0; i < slides.length; i++) {
var dataItem = slides[i];
var htmlItem = getLinkItem(dataItem.link, dataItem.title);
document.getElementById('link-list').appendChild(htmlItem)
}
推荐阅读
- 3d - 如何在 OpenSCAD 中放置对象(使其在 Z 轴上齐平以进行 3D 打印)
- c++ - 如何在 C++ 中将摩尔斯电码翻译成英语?
- reactjs - React-query:如何更新缓存?
- django - 如何在管理员(Django)中从服务器选择(不上传)文件
- axios - 在 Nuxt.js 中带有正文的 axios DELETE 请求
- php - 如何修复 Laravel 8 测试中的“419 - 页面已过期”错误?
- apache-spark - pyspark:如何以“yyyy-MM-dd HH”格式按日期列分区
- php - Laravel 应用程序与 3rd 方 API 交互以获取令牌
- wpf - ListViewItem 中的 EventTriggers 不应由包含的 ItemTemplate 触发
- python - 在没有实际表单的情况下使用 flask-wtf 表单验证