在 html 中的 href link 中设置变量
Setting variables in a href link in html
我有大约 50 个指向呈现的仪表板的链接,这些仪表板彼此之间非常不同。但它们都有两个属性。一个 from 和一个 to 属性。他们定义了一个包含开始日期和结束日期的时间范围。
对于大约 50 个链接中的每一个,正文中都有一个 html 标记,链接本身就是 href 属性。请以此为例:
<a id="id1" download="picture.png" href="https://url.com/render/dashboard-solo/db/dashboardname?panelId=5&from=01012017&to=04012017&width=1000&height=50"/>
现在我需要两个输入字段来设置日期。例如,如果我在 from 属性的输入字段中键入 02022017,我希望 javascript 将正文中标签的 hrefs 中的所有 from 属性替换为该输入值。
我有大约 50 行看起来像上面的示例,但它们有不同的 url。它们还具有不同的仪表板名称和面板 ID。
你有什么想法吗?当然我可以设置一个 javascript 和两个输入表单,但我不知道如何将 href 属性部分设置为变量。谢谢
我认为你的做法全错了。您不想更新所有这些 link 上的所有 href
属性,您想在单击每个属性时调用 javascript 函数并使其导航到特定的 [=43] =] 具有变量 from/to 属性。
看看这个例子:
function goToDashboard(panelId){
var fromValue = document.getElementById("from").value;
var toValue = document.getElementById("to").value;
var uri = "https://url.com/render/dashboard-solo/db/dashboardname?panelId=" + panelId + "&from=" + fromValue + "&to=" + toValue + "&width=1000&height=50";
console.log(uri);
return false;
}
<a id="id1" download="picture.png" href="#" onClick="return goToDashboard(5)">Go to dashboard</a>
<hr>
From: <input id="from" value="01012017">
To: <input id="to" value="04012017">
如果您只是将 console.log(uri)
更改为 location.href=uri
,它将完全像 link 一样工作,但现在 from 和 to 是动态的。
看来您需要实际设置 href 属性。这个也可以。
function goToDashboard(link, panelId){
var fromValue = document.getElementById("from").value;
var toValue = document.getElementById("to").value;
var uri = "https://url.com/render/dashboard-solo/db/dashboardname?panelId=" + panelId + "&from=" + fromValue + "&to=" + toValue + "&width=1000&height=50";
link.setAttribute("href",uri);
link.click();
return false;
}
<a id="id1" download="picture.png" href="#" onClick="return goToDashboard(this, 5)">Go to dashboard</a>
<hr>
From: <input id="from" value="01012017">
To: <input id="to" value="04012017">
我有大约 50 个指向呈现的仪表板的链接,这些仪表板彼此之间非常不同。但它们都有两个属性。一个 from 和一个 to 属性。他们定义了一个包含开始日期和结束日期的时间范围。
对于大约 50 个链接中的每一个,正文中都有一个 html 标记,链接本身就是 href 属性。请以此为例:
<a id="id1" download="picture.png" href="https://url.com/render/dashboard-solo/db/dashboardname?panelId=5&from=01012017&to=04012017&width=1000&height=50"/>
现在我需要两个输入字段来设置日期。例如,如果我在 from 属性的输入字段中键入 02022017,我希望 javascript 将正文中标签的 hrefs 中的所有 from 属性替换为该输入值。
我有大约 50 行看起来像上面的示例,但它们有不同的 url。它们还具有不同的仪表板名称和面板 ID。
你有什么想法吗?当然我可以设置一个 javascript 和两个输入表单,但我不知道如何将 href 属性部分设置为变量。谢谢
我认为你的做法全错了。您不想更新所有这些 link 上的所有 href
属性,您想在单击每个属性时调用 javascript 函数并使其导航到特定的 [=43] =] 具有变量 from/to 属性。
看看这个例子:
function goToDashboard(panelId){
var fromValue = document.getElementById("from").value;
var toValue = document.getElementById("to").value;
var uri = "https://url.com/render/dashboard-solo/db/dashboardname?panelId=" + panelId + "&from=" + fromValue + "&to=" + toValue + "&width=1000&height=50";
console.log(uri);
return false;
}
<a id="id1" download="picture.png" href="#" onClick="return goToDashboard(5)">Go to dashboard</a>
<hr>
From: <input id="from" value="01012017">
To: <input id="to" value="04012017">
如果您只是将 console.log(uri)
更改为 location.href=uri
,它将完全像 link 一样工作,但现在 from 和 to 是动态的。
看来您需要实际设置 href 属性。这个也可以。
function goToDashboard(link, panelId){
var fromValue = document.getElementById("from").value;
var toValue = document.getElementById("to").value;
var uri = "https://url.com/render/dashboard-solo/db/dashboardname?panelId=" + panelId + "&from=" + fromValue + "&to=" + toValue + "&width=1000&height=50";
link.setAttribute("href",uri);
link.click();
return false;
}
<a id="id1" download="picture.png" href="#" onClick="return goToDashboard(this, 5)">Go to dashboard</a>
<hr>
From: <input id="from" value="01012017">
To: <input id="to" value="04012017">