我正在尝试在 href=""
中添加另一个变量。
<a href="a.html" id="a">Hello</a>
以下是我的代码。
我想在跳转到a.html页面时,将值为“apple”的变量命名为“fruit”传递。 我应该如何使用JavaScript或jQuery实现?
我正在尝试在 href=""
中添加另一个变量。
<a href="a.html" id="a">Hello</a>
JS之间(容易)通信的唯一方式是在链接上创建参数。例如:
<a href="a.html?fruit=apple" id="a">Hello</a>
$("a").attr("href", '?fruit=' + 'apple');
只需在您的主页上执行以下操作:
<a href="a.html?fruit=apple" id="a">Hello</a>
And on a.html
, add this code:
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
var fruit = getParameterByName('fruit');
<a href="a.html?fruit=apple" id="a">Hello</a>
var el = document.getElementById('a');
el.href += '?fruit=apple';
console.log(el.href);
<a href="a.html" id="a">Hello</a>
根据我的理解,您想要在打开新页面时向锚点标签URL添加查询参数fruit=apple
。因此,您需要使用window.open()
来打开新页面。
document.getElementById("a").onclick = function(e){
e.preventDefault();
window.open(this.href+"?fruit=apple", '_blank');
}
<a href="a.html" id="a">Hello</a>
由于代码片段中无法打开新标签页,请在jsfiddle中检查。
我们需要一种访问HTML参数的方法。
我不认为在HTML中有这样的可能性。然而,有很多JavaScript方法可供选择。
例如:
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
你可以这样调用这个函数:var fruit = getUrlVars()["fruit"];
console.log(fruit);
//Apple
你的 href 中的 URL 将会是这样的:
a.html?fruit=Apple
然而这是硬编码的,如果你想要一些好的动态效果,可以使用angularJS来创建。
a.html
更改为a.html?fruit=apple
。 - domsson