Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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_Angularjs - Fatal编程技术网

根据条件显示的Javascript按钮

根据条件显示的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

我试图使按钮只有在显示一个表时才可见,但它似乎不起作用,按钮没有隐藏

PS:很抱歉没有澄清,我的javascript是在线运行的

HTML:

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;
}