Javascript 使用jQuery在URL末尾添加变量
到目前为止,我已经做到了 jQuery:Javascript 使用jQuery在URL末尾添加变量,javascript,jquery,html,url,variables,Javascript,Jquery,Html,Url,Variables,到目前为止,我已经做到了 jQuery: function addURL(element) { var baseZipCode = 48180; $(element).attr('href', function() { return this.href + baseZipCode; }); } html: 我的问题是,当用户单击链接,新窗口打开时,一切正常,但当用户再次单击链接而不刷新时,变量会添加两次到链接中 例如: 第一次: 第二次: 在您刷新页面之前,它不会正常工作,任何
function addURL(element)
{
var baseZipCode = 48180;
$(element).attr('href', function() {
return this.href + baseZipCode;
});
}
html:
我的问题是,当用户单击链接,新窗口打开时,一切正常,但当用户再次单击链接而不刷新时,变量会添加两次到链接中
例如:
第一次:
第二次:
在您刷新页面之前,它不会正常工作,任何帮助都将不胜感激。提前感谢这应该是:
function addURL(element)
{
var baseZipCode = 48180;
element.href = (element.href + baseZipCode)
.replace(baseZipCode + baseZipCode, baseZipCode);
}
将
addURL
函数替换为
function addURL(element)
{
var baseZipCode = '48180';
if (element.href.slice(-baseZipCode.length) !== baseZipCode){
element.href += baseZipCode;
}
}
没有涉及jQuery。您可以使用
Javascript:
jQuery("a").one("click", function(){ // Set a handler that execute once
var baseZipCode = 48180;
this.href += baseZipCode; //same as "this.href = this.href + baseZipCode"
});
HTML:
也许您需要在标记中添加一些类以使其与其他类不同猜测情况并非如此,但如果链接中已包含
baseZipCode
,则会失败。您最好使用slice(-baseZipCode.length)
来检查它是否包含在stirngsure的末尾,但是如果您在其他地方找到您的邮政编码而不是放在它的位置,那将是非常不幸运的,因为我将zipcode作为请求属性传递。Thanks@mlwacosmos嘿,一旦我将变量更改为字符串,zipcode就开始再次重复,例如,我将var-zipcode=48180更改为var-zipcode='48180'。如果可以,你能解释一下为什么你的建议不起作用吗anymore@mlwacosmos我修复了它,我只是将变量的值放在这个.href.indexOf()中,而不是变量名+1,做得很好,不需要jQuery。先检查是否存在,然后再添加,还是更好?@iambriansreed,更倾向于。。检查的唯一好处是,您可以指定检查的位置,而仅替换副本就可以(在这种情况下不太可能)替换原始字符串中的另一个匹配项。+1不确定答案是否适用,但jQuery.fn.one
对我来说是新的。有时jQuery.fn.one
非常有用。。您只需在第一次单击时执行处理程序,而不是测试每个用户单击。。我认为这是一个很好的解决办法。。
function addURL(element)
{
var baseZipCode = '48180';
if (element.href.slice(-baseZipCode.length) !== baseZipCode){
element.href += baseZipCode;
}
}
jQuery("a").one("click", function(){ // Set a handler that execute once
var baseZipCode = 48180;
this.href += baseZipCode; //same as "this.href = this.href + baseZipCode"
});
<a href="http://www.weather.com/weather/today/" target="_blank">Click this</a>