如何隐藏<a href=""> tag in InnerHTML</a>

时间:2013-02-07 02:09:54

标签: javascript

我的图像在.cs文件中定义了“a href”标签的InnerHTML,如下所示。

_divToolTipContainer.InnerHtml = "<a href=\"javascript:__doPostBack('" + btnItemThumbnail.ClientID.Replace("_", "$") + "','')\">" +
                                           itemimage;

现在我想要的是,如果文本框为空,则将此“a href”标记“隐藏”或“设置为可见为false”,否则可以点击此选项。

我的代码如下所示,但不起作用。

    var oDivA1 = document.getElementById(oElementId);

    if(val === undefined || val == null || val.length <= 0){        
        oDivA1.style.display = "none"; // not working
    }else{
        oDivA1.style.display = "block"; // not working
    }

oDivA1.style.display =“none”,这对整个div都不显示,而不是“a href”标记。

这可能吗?

由于

RJ

1 个答案:

答案 0 :(得分:0)

使用firstChild属性获取div的内部元素,假设它包含的所有HTML,如示例所示。

var oDivA1 = document.getElementById(oElementId);
var anchor = oDivA1 ? oDivA1.firstChild : null;

if(anchor && (val === undefined || val == null || val.length <= 0)){        
    anchor.style.display = "none";
}else{
    anchor.style.display = "block";
}

阻止链接操作

var handler = function(e) { e.preventDefault(); };

if(anchor && (val === undefined || val == null || val.length <= 0)){        
    anchor.addEventListener('click',handler,false);
}else{
    anchor.removeEventListener('click',handler,false);
}

有关浏览器兼容性和旧版浏览器的变通方法的信息,请参阅https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener