与其a
作为参数传入,不如通过其 id(您尚未定义)传入被点击的链接。传入this
函数。
<a id='linka' href="#" onclick='swapPost(this)'>LinkA</a>
<a id='linkb' href="#" onclick='swapPost(this)'>LinkB</a>
var a=0;
function swapPost(nodeClicked){
// Check the id of the node passed to the function.
if (nodeClicked.id == 'linka') {
a++;
}
else if (nodeClicked.id == 'linkb') {
a--;
}
else return;
// Set to zero if outside your bounds
if(a>10){
a=0;
}
if(a<0){
a=0;
}
}
在这里,它正在运行,登录到控制台......
通常,将函数绑定到事件而不是将它们内联到属性中是更好的做法。因为this
里面的 anonclick
指的是被点击的节点,所以你实际上不需要将它作为参数传入。然后,您可以绑定 onclick 事件而无需内联,并this
在内部调用。
<a id='linka' href="#">LinkA</a>
<a id='linkb' href="#">LinkB</a>
var a=0;
var swapPost = function(){
// Check the id of the node passed to the function.
if (this.id == 'linka') {
a++;
}
else if (this.id == 'linkb') {
a--;
}
else return;
// Set to zero if outside your bounds
if(a>10){
a=0;
}
if(a<0){
a=0;
}
}
// Bind the function to the links
document.getElementById('linka').onclick = swapPost;
document.getElementById('linkb').onclick = swapPost;
这是更新的版本