我正在尝试在多个链接中获取href值或标记a.and我尝试使用此代码
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 function的情况下编写我们自己的函数来处理同样的事情。
这一整个事情在一个html页面中,但我只想在其他html页面中使用href值,所以如果我们编写自己的js函数,我们可以在两个html页面中使用它。该函数应返回href。但在这里我不知道如何返回$(document).ready function。
答案 0 :(得分:5)
您可以创建基于对象的变量:
var screen = {
link:''
};
然后点击分配/访问:
$('a').on('click',function(){
screen.link = this.href;
alert(screen.link);
});
我主张将此变量分配给窗口...这样可以更多地控制。
注意我使用的是this.href
而不是$(this).attr('href')
。正如世界上最有趣的人所说,我并不总是使用香草JS,但是当我这样做时,速度提高了600,000倍。
编辑所以你想要摆脱$(document).ready()
嗯?现在你冒险进入鲨鱼出没的纯香草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工作,你可以得到更多精心设计或使用cookies,但这只是提供想法。您可以随时使用通过screen.setLink
的{{1}}函数设置值,也可以随时使用href
函数获取值。
答案 1 :(得分:0)
在外部声明val
以使其成为全局,您可以使用函数内部的val来全局设置href
var val;
$(document).ready(function() {
$("a").click(function(e) {
e.preventDefault();
val = $(this).attr("href");
alert(val);
});
});
答案 2 :(得分:0)
看一下这个例子:
<!DOCTYPE html>
<html>
<head>
<title>Try jQuery 1.9.1 Online</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
var val;
$(document).ready(function() {
$("a").on('click', function() {
window.val = $(this).attr("href");
alert(window.val);
return false;
});
$("div").on('click', function() {
alert (val);
});
});
</script>
</head>
<body>
<a href="sometext1">a</a>
<a href="sometext2">b</a>
<div>click here</div>
</body>
</html>
点击链接后,将设置a或b val 。单击div标签将提醒您当前 val 的参考。