Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript更改边框_Javascript_Html - Fatal编程技术网

Javascript更改边框

Javascript更改边框,javascript,html,Javascript,Html,我的页面中有一些按钮,如: <a id="1" onclick="javascript:randje(1);"></a> <a id="2" onclick="javascript:randje(2);"></a> 这很有效。但我有一个小列表,上面有一些可点击的链接,有时是2个,有时是5个,甚至更多。现在我想尝试更改我单击的按钮的边框,并将上一次单击的边框设置为黑色。像这样的东西,但这还不起作用。有人能帮我吗 function randje(A)

我的页面中有一些按钮,如:

<a id="1" onclick="javascript:randje(1);"></a>
<a id="2" onclick="javascript:randje(2);"></a>
这很有效。但我有一个小列表,上面有一些可点击的链接,有时是2个,有时是5个,甚至更多。现在我想尝试更改我单击的按钮的边框,并将上一次单击的边框设置为黑色。像这样的东西,但这还不起作用。有人能帮我吗

function randje(A) {
    if ( B ) { document.getElementById(B).style.borderColor = "black" };
    document.getElementById(A).style.borderColor = "green";
    var B = A;
}

谢谢

只需将声明移出函数即可

var-B;
功能(A){
如果(B){
document.getElementById(B).style.borderColor=“黑色”
};
document.getElementById(A).style.borderColor=“绿色”;
B=A;
}
a{边框样式:虚线;}
1

两个
这是另一个选项,假设有多个链接,如您所写。该解决方案是基于jQuery的,但也可以用普通JavaScript实现


a、 链接{边框:3px纯黑色;显示:内联块;填充:1em;}
a、 link.selected{边框颜色:绿色;}
1.
2.
3.
$('a.link')。在('click',(e)=>{
$('a.link').removeClass('selected');
$(e.currentTarget).addClass('selected');
})

我还没有达到您的目标,但是:范围
var B
是函数本身。在返回后将无法生存。因此,每次
if
中的条件都将产生false。您可以在窗口范围中声明B。但是您最好使用类:选择您喜欢的类名,并声明边框样式。然后单击从集合中的所有元素中删除该类,并添加到事件的目标。如果我理解正确,可能会有很多B-s。
function randje(A) {
    if ( B ) { document.getElementById(B).style.borderColor = "black" };
    document.getElementById(A).style.borderColor = "green";
    var B = A;
}