Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将差异链接添加到JS按钮?_Javascript_Html - Fatal编程技术网

Javascript 如何将差异链接添加到JS按钮?

Javascript 如何将差异链接添加到JS按钮?,javascript,html,Javascript,Html,我用Vanilla JS创建了多个按钮,希望它们链接到不同的页面。我正在考虑通过“links”数组进行映射,但需要对如何针对每个指向正确页面的按钮进行更新 const multipleButtons=()=>{ //设i=0; 让body=document.getElementsByTagName(“body”)[0]; var optionText=[“健身指南”、“护理”、“材料”]; var links=['fitGuide.html','care.html','materials.ht

我用Vanilla JS创建了多个按钮,希望它们链接到不同的页面。我正在考虑通过“links”数组进行映射,但需要对如何针对每个指向正确页面的按钮进行更新

const multipleButtons=()=>{
//设i=0;
让body=document.getElementsByTagName(“body”)[0];
var optionText=[“健身指南”、“护理”、“材料”];
var links=['fitGuide.html','care.html','materials.html'];
for(设i=0;i多按钮()如果您必须使用按钮而不是
a
标记,则如下所示:

const multipleButtons=()=>{
//设i=0;
让body=document.getElementsByTagName(“body”)[0];
var optionText=[“健身指南”、“护理”、“材料”];
var links=['fitGuide.html','care.html','materials.html'];
for(设i=0;i多按钮()您可以将事件侦听器更改为

button.addEventListener("click", function() { window.location.href = links[i]; });

for
循环已被证明速度更快,但循环更具可读性,因此我建议您使用它们。对于不变的变量,使用它也是一个好主意

最后一件事是最好使用
标记,因为这就是它们的设计目的——就像昆汀在评论中提到的那样。如果需要,可以将其样式设置为按钮

const multipleButtons=()=>{
const optionText=[“健身指南”、“护理”、“材料”];
const links=['fitGuide.html','care.html','materials.html'];
optionText.forEach(函数(文本、索引){
const-anchor=document.createElement(“a”);
anchor.innerText=文本;
anchor.href=链接[索引];
document.body.appendChild(锚定);
addEventListener(“单击”,函数(){
警报(this.innerText);
window.location.href=this.href;
});
});
}
多按钮()
a{
右边距:.5em;

}
您期望的HTML输出是什么?如果您想要链接,请使用链接(
)而不是按钮。您正在查找
按钮。addEventListener(“单击”,function(){window.location.href=links[i];})?@Quentin为不清楚道歉。我的目的是让每个按钮链接到一个页面,仅此而已。我想映射“links”数组中的每个元素,所以第一个按钮(FitGuide)指向/FitGuide.html,第二个按钮指向第二个链接,第三个指向第三个链接,依此类推。@j08691是的,谢谢你的救命恩人。我一直在放window.link.href。谢谢<代码>更换
?!为什么要这样乱动后退按钮?
href
是字符串属性,而不是函数。未捕获的TypeError:window.location.href不是函数谢谢——是的,我后来将它们改为链接!