gpt4 book ai didi

javascript - 通过使用 jquery 在多个 anchor 中单击 anchor 来获取 href 值

转载 作者:行者123 更新时间:2023-11-30 08:49:07 26 4
gpt4 key购买 nike

我正在尝试获取多个链接或标记 a 中的 href 值。我尝试使用此代码

var val;
$(document).ready(function() {
$("a").click(function() {
window.val = $(this).attr("href");
alert(window.val);
});

它对于多个链接工作正常并且在本地文件中,这里有几个演示链接

<a href="sometext1">a</a>
<a href="sometext2">b</a>.....

但问题是我希望 href 值全局可用,因为我在其他文件中使用它。我的问题是如何让它成为全局性的,或者有没有其他方法可以做到这一点。

以及如何在不使用 $(document).ready 函数的情况下编写我们自己的函数来完成同样的事情。

这一切都在一个 html 页面中,但我只想要其他 html 页面中的 href 值,所以如果我们编写自己的 js 函数,我们可以在两个 html 页面中使用它。该函数应该返回 href。但在这里我不知道如何返回 $(document).ready 函数。

最佳答案

您可以创建一个基于对象的变量:

var screen = {
link:''
};

然后在点击时分配/访问:

$('a').on('click',function(){
screen.link = this.href;
alert(screen.link);
});

我提倡这种方式,而不是将变量分配给窗口……以这种方式进行更多控制。

请注意,我使用了 this.href 而不是 $(this).attr('href')。正如世界上最有趣的人所说,我并不总是使用 vanilla JS,但当我使用它时,它的速度大约快 600,000 倍。

编辑 所以你想摆脱 $(document).ready() 是吗?现在,您正在冒险进入纯 Vanilla JS 鲨鱼出没的水域。

var screen = {
link:'',
assignLink:function(href){
screen.link = href;
alert(href);
}
},
links = document.getElementsByTagName('a');

if(window.addEventListener){
for(i = links.length; i--;){
links[i].addEventListener('click',function(){
screen.assignLink(this.href);
});
}
} else {
for(i - links.length; i--;){
links[i].attachEvent('onclick',function(){
screen.assignLink(this.href);
});
}
}

这只是即兴发挥,所以如果它不是完美无缺,请不要责备我,它更能说明问题。明白为什么 jQuery 如此方便了吗?所有这些额外的垃圾都是在后台为你完成的,所以你只需要处理 $(document).ready() 的负担而不必处理其余的这种东西。

再次编辑那么...您想跨页面访问此值吗?

var screen = {
link:((localStorage['link'] !== null) ? localSorage['link'] : ''),
setLink:function(href){
screen.link = href;
localStorage['link'] = href;
alert(href);
},
getLink:function(){
return screen.link;
}
};

$('a').on('click',function(){
screen.setLink(this.href);
});

localStorage 的使用只是一个示例……如果您希望 IE7- 正常工作,您可以更详细地说明或使用 cookie,但这只是提供了一些想法。您可以随时使用传递 hrefscreen.setLink 函数设置该值,或者您可以随时使用 screen.getLink< 获取该值 函数。

关于javascript - 通过使用 jquery 在多个 anchor 中单击 anchor 来获取 href 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19426890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com