Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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 当我单击按钮(角度2)时,我的功能不起作用_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 当我单击按钮(角度2)时,我的功能不起作用

Javascript 当我单击按钮(角度2)时,我的功能不起作用,javascript,angular,typescript,Javascript,Angular,Typescript,我已经为此工作了几天,我不明白为什么当我点击按钮时不能显示我的功能。这是我的密码 <div class="dayOfYear" style="display:none" >{{ toDayOfYear(day.date) }}</div> <script> function showingChange(){ let ID = document.getElementById('dayOfYear')

我已经为此工作了几天,我不明白为什么当我点击按钮时不能显示我的功能。这是我的密码

     <div class="dayOfYear" style="display:none" >{{ toDayOfYear(day.date) }}</div>
      <script>

        function showingChange(){
          let ID = document.getElementById('dayOfYear')
          if (ID.style.display === 'none') {
             let x = ID.style.display === 'block'
            return x
          }
        }

      </script>

{{toDayOfYear(day.date)}
函数showingChange(){
让ID=document.getElementById('dayOfYear')
如果(ID.style.display=='none'){
让x=ID.style.display=='block'
返回x
}
}

如果要从html中删除所有脚本标记,应在ts文件中写入函数代码:

HTML

<button (click)="showingChange()"></button>
showingChange(){
    let ID = document.getElementById('dayOfYear')
    if (ID.style.display === 'none') {
        let x = ID.style.display === 'block'
            return x
    }
}
    <button (click)="showingChange()"></button>
    <div class="dayOfYear" [ngStyle]="{'display':show == true ? 'block' : 'none' }" >{{ toDayOfYear(day.date) }}</div>
public show: boolean = false;
showingChange(){
    this.show = true;
}
编辑(角度法):

<button (click)="showingChange()"></button>
showingChange(){
    let ID = document.getElementById('dayOfYear')
    if (ID.style.display === 'none') {
        let x = ID.style.display === 'block'
            return x
    }
}
    <button (click)="showingChange()"></button>
    <div class="dayOfYear" [ngStyle]="{'display':show == true ? 'block' : 'none' }" >{{ toDayOfYear(day.date) }}</div>
public show: boolean = false;
showingChange(){
    this.show = true;
}
HTML

<button (click)="showingChange()"></button>
showingChange(){
    let ID = document.getElementById('dayOfYear')
    if (ID.style.display === 'none') {
        let x = ID.style.display === 'block'
            return x
    }
}
    <button (click)="showingChange()"></button>
    <div class="dayOfYear" [ngStyle]="{'display':show == true ? 'block' : 'none' }" >{{ toDayOfYear(day.date) }}</div>
public show: boolean = false;
showingChange(){
    this.show = true;
}

你发布的代码块中没有按钮。你为什么要使用script标记?也同意@Chellappan,你的问题标记为“Angular”和“Typescript”,但你正在使用
标记将Javascript嵌入html中。这是一种非常糟糕的做法。@ChristianScillitoe Day of Year您不应该通过文档对象访问dom。。。更好的方法是创建一个类变量,并使用*ngIf方向显示/隐藏元素。我同意Mateusz的观点,但这会起作用。另外,不相关,但他是通过一年中的某一天的id获得的,但实际上这是class@MateuszKlimentowicz谢谢,我修改了答案,增加了一个更实用的方法。