根据条件显示的Javascript按钮
我试图使按钮只有在显示一个表时才可见,但它似乎不起作用,按钮没有隐藏 PS:很抱歉没有澄清,我的javascript是在线运行的 HTML:根据条件显示的Javascript按钮,javascript,angularjs,Javascript,Angularjs,我试图使按钮只有在显示一个表时才可见,但它似乎不起作用,按钮没有隐藏 PS:很抱歉没有澄清,我的javascript是在线运行的 HTML: var DLFunc=document.getElementsByTagName(“表”); var DLButtons=document.getElementById(“tabletosv”); 如果(DLFunc==“”){ DLButtons.style.visibility='hidden'; }else if(DLFunc!=“”){ DLBu
var DLFunc=document.getElementsByTagName(“表”);
var DLButtons=document.getElementById(“tabletosv”);
如果(DLFunc==“”){
DLButtons.style.visibility='hidden';
}else if(DLFunc!=“”){
DLButtons.style.visibility='visible';
}
CSV文件
您可以执行以下操作:
// you can check directly in the condition
const DLFunc = document.getElementsByTagName("table");
const DLButtons = document.getElementById("tableToCsv");
if (DLFunc)
{
DLButtons.style.visibility = 'hidden';
}
else
{
DLButtons.style.visibility = 'visible';
}
通过计算表标记的数量,检查是否有表显示。检查数组的长度,而不是检查空字符串:
var DLFunc = document.getElementsByTagName("table");
var DLButtons = document.getElementById("tableToCsv");
if (DLFunc.length == 0) {
DLButtons.style.visibility = 'hidden';
} else {
DLButtons.style.visibility = 'visible';
}
还要检查代码何时运行(可能添加警报),因为在JS运行时可能尚未创建表
更新:
您的JS不会拾取表,因为它是在页面加载时运行的,而AngularJS可能稍后创建元素
您可以将以下内容添加到DLButtons HTML中:
<button class="btnCSV" *ngShow="hasTable()">CSV file</button>
试试这个:
var DLFunc=document.getElementsByTagName(“表”);
var DLButtons=document.getElementById(“tabletosv”);
如果(DLFunc.length==0){
DLButtons.style.visibility='hidden';
}否则{
DLButtons.style.visibility='visible';
}
CSV文件
我建议获得元素可见表的长度,然后您可以确定有一个表,您介意详细说明吗@请保证并感谢像DLFunc.length>0这样的方法,但您还有其他要求,对吗?可见表?这将只检查是否有需要检查的表,该表是否可见或仍不工作,您能否帮助我检查我的代码安排是否错误或其他问题?我在DownloadCSV.js中放置了js代码。您是在加载状态下运行js还是通过触发事件运行js?当我切换到具有表的视图时,按钮不会显示直到不工作,可能我放置代码的方式是错误的?你介意帮我看看吗?我更新了itAngular,稍后将添加该表,在运行JS后(在加载页面时只运行一次),它现在默认隐藏,当我转到包含表的页面时,它会显示出来。但是,当我再次转到没有表的页面时,按钮不会隐藏。如果(DLFunc.length>0){DLButtons.style.visibility='hidden';}否则{DLButtons.style.visibility='visible';}
的条件与要求相反。检查我的答案。你是不是因为我纠正了你而对我的帖子投了否决票?不起作用,可能是因为我的js加载在页面加载上了,它不起作用working@HangulSR如果在
中添加一个表标记,则该代码正在工作。其余的取决于您如何将其放置在标记或外部JS中。请参见此处的示例:
hasTable() {
return document.getElementsByTagName("table").length > 0;
}