如何在 href 上传递变量?
How to pass variable on href?
我试图在 href=""
时给出另一个变量
<a href="a.html" id="a">Hello</a>
以上是我的代码。
我想在转到 a.html
时传递名为 fruit
的值 apple
变量。我如何在 JavaScript 或 jQuery 中执行此操作?
您可以通过将现有值与新值连接来重置 href 值:
var el = document.getElementById('a');
el.href += '?fruit=apple';
console.log(el.href);
<a href="a.html" id="a">Hello</a>
只需在您的主页上执行此操作:
<a href="a.html?fruit=apple" id="a">Hello</a>
并在 a.html
上添加此代码:
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>
JS 可以(轻松)在 URL 之间进行通信的唯一方法是在 link 上创建一个参数。例如:
<a href="a.html?fruit=apple" id="a">Hello</a>
在接收页面上,获取该参数数据。如果您希望纯粹通过 JS 将数据嵌入到 link 中,您可以使用 jQuery 库使用类似于此的内容附加到 HREF:
$("a").attr("href", '?fruit=' + 'apple');
据我了解,您希望在打开新页面时将查询参数 fruit=apple
添加到锚标记 url。所以你需要使用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=苹果
然而,这是硬编码的,如果你想用这个 prehpas 获得一些不错的动态,请使用 angularJS 来创建它。
我试图在 href=""
<a href="a.html" id="a">Hello</a>
以上是我的代码。
我想在转到 a.html
时传递名为 fruit
的值 apple
变量。我如何在 JavaScript 或 jQuery 中执行此操作?
您可以通过将现有值与新值连接来重置 href 值:
var el = document.getElementById('a');
el.href += '?fruit=apple';
console.log(el.href);
<a href="a.html" id="a">Hello</a>
只需在您的主页上执行此操作:
<a href="a.html?fruit=apple" id="a">Hello</a>
并在 a.html
上添加此代码:
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>
JS 可以(轻松)在 URL 之间进行通信的唯一方法是在 link 上创建一个参数。例如:
<a href="a.html?fruit=apple" id="a">Hello</a>
在接收页面上,获取该参数数据。如果您希望纯粹通过 JS 将数据嵌入到 link 中,您可以使用 jQuery 库使用类似于此的内容附加到 HREF:
$("a").attr("href", '?fruit=' + 'apple');
据我了解,您希望在打开新页面时将查询参数 fruit=apple
添加到锚标记 url。所以你需要使用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=苹果
然而,这是硬编码的,如果你想用这个 prehpas 获得一些不错的动态,请使用 angularJS 来创建它。