如何通过Javascript根据条件禁用超链接

如何通过Javascript根据条件禁用超链接,javascript,html,Javascript,Html,如何根据条件禁用超链接 var mydiv = document.getElementById("myDiv"); var aTag = document.createElement('a'); aTag.setAttribute('href',"yourlink.htm"); aTag.innerHTML = "link text"; mydiv.innerHTML=""; mydiv.innerHTML=aTag;

如何根据条件禁用超链接

 var mydiv = document.getElementById("myDiv");      
 var aTag = document.createElement('a');       
 aTag.setAttribute('href',"yourlink.htm");        
 aTag.innerHTML = "link text";      
 mydiv.innerHTML="";      
 mydiv.innerHTML=aTag;  
说我需要在这里禁用我的aTag


根据登录的用户,我需要禁用或启用..

您可以通过设置disabled属性来禁用链接(在锚元素上无效,但在某些情况下有效)

锚上禁用属性的测试设置:

最好是,您可以完全删除链接,并将其替换为包含的文本。要用纯文本替换链接,可以将
mydiv
的innerHTML设置为文本(从而删除超链接)

如果链接可以切换到ON/OFF,请考虑注释中建议的@ Oleg V. Volkov的表单元素(不是超链接)。如果这是一个一次性的决定(即,它不会在每页发生多次),我会用文本替换链接

根据登录用户,我需要禁用或启用


在这种情况下,我会在服务器上以不同的方式呈现页面,而不是在web浏览器中。

您可以通过设置disabled属性来禁用链接(在锚元素上无效,尽管在某些情况下它是有效的)

锚上禁用属性的测试设置:

最好是,您可以完全删除链接,并将其替换为包含的文本。要用纯文本替换链接,可以将
mydiv
的innerHTML设置为文本(从而删除超链接)

如果链接可以切换到ON/OFF,请考虑注释中建议的@ Oleg V. Volkov的表单元素(不是超链接)。如果这是一个一次性的决定(即,它不会在每页发生多次),我会用文本替换链接

根据登录用户,我需要禁用或启用

在这种情况下,我会在服务器上以不同的方式呈现页面,而不是在web浏览器中

 if(condition)
     disableLink();
else
   showLink();



function disableLink()
        {

        document.getElementById('Link1').disabled=true;
        document.getElementById('Link1').removeAttribute('href');    
        document.getElementById('Link1').style.textDecoration = 'none';
        document.getElementById('Link1').style.cursor = 'default';
        }

        function showLink()
        {
            document.getElementById('Link1').disabled=false;
        //assign href dynamically
        document.getElementById('Link1').href = "somepage.html";
        document.getElementById("Link1").style.textDecoration = "underline";
        document.getElementById("Link1").style.cursor = "hand";
        }
这应该行得通

 if(condition)
     disableLink();
else
   showLink();



function disableLink()
        {

        document.getElementById('Link1').disabled=true;
        document.getElementById('Link1').removeAttribute('href');    
        document.getElementById('Link1').style.textDecoration = 'none';
        document.getElementById('Link1').style.cursor = 'default';
        }

        function showLink()
        {
            document.getElementById('Link1').disabled=false;
        //assign href dynamically
        document.getElementById('Link1').href = "somepage.html";
        document.getElementById("Link1").style.textDecoration = "underline";
        document.getElementById("Link1").style.cursor = "hand";
        }

基于什么条件?从UX POV来看,用户几乎不习惯禁用链接,所以我建议不要这样做。如果你需要禁用某个链接,它很可能应该是按钮。基于什么条件?从UX POV来看,用户几乎不习惯禁用链接,所以我建议不要这样做。如果您需要禁用某个功能,它很可能应该是按钮。如果我没有弄错,Link1是超链接的id,对吗?但是在上面显示的示例代码中,我需要禁用aTag链接。我尝试了上面提供的代码,但没有效果。请给出建议。“动态分配href”不是有点含糊吗?当调用removeAttribute时,您将丢失目标URL,那么如何在调用showLink时将其恢复?在擦之前先把它保存起来怎么样?可能有一个比src更好的属性可以使用,但它对我有效:document.getElementById('Link1')。src=document.getElementById('Link1')。href;如果我没有弄错,Link1超链接的id正确吗?但是在上面显示的示例代码中,我需要禁用aTag链接。我尝试了上面提供的代码,但没有效果。请给出建议。“动态分配href”不是有点含糊吗?当调用removeAttribute时,您将丢失目标URL,那么如何在调用showLink时将其恢复?在擦之前先把它保存起来怎么样?可能有一个比src更好的属性可以使用,但它对我有效:document.getElementById('Link1')。src=document.getElementById('Link1')。href;