【问题标题】:Property 'checked' does not exist on type 'HTMLElement'.“HTMLElement”类型上不存在“已检查”属性。
【发布时间】:2018-09-07 04:03:20
【问题描述】:

我在打字稿文件中有这段代码

 function debug_show_removed_flights() {
    if ($('.debug-window #show_removed_flights')[0].checked) {
      $('.fly-schedule-removed_reason').show();
      return $('.fly-schedule-remove').show();
    } else {
      $('.fly-schedule-removed_reason').hide();
      return $('.fly-schedule-remove').hide();
    }
  };

但是在这一行,我有错误。

if ($('.debug-window #show_removed_flights')[0].checked) {

[ts] 类型“HTMLElement”上不存在属性“checked”。

我该如何解决?

【问题讨论】:

    标签: javascript jquery typescript


    【解决方案1】:

    只有HTMLInputElement 具有选中的属性。你可以转换你的元素,这样它就会转译:

    function debug_show_removed_flights() {
        const input = $('.debug-window #show_removed_flights')[0] as HTMLInputElement;
        if (input.checked) {
            $('.fly-schedule-removed_reason').show();
            return $('.fly-schedule-remove').show();
        } else {
            $('.fly-schedule-removed_reason').hide();
            return $('.fly-schedule-remove').hide();
        }
    }
    

    【讨论】:

      【解决方案2】:

      添加HTMLInputElement inline 如下

      
      function debug_show_removed_flights() {
      
          const input = $('.debug-window #show_removed_flights')[0];
      
          if ((input as HTMLInputElement).checked) {
              $('.fly-schedule-removed_reason').show();
              return $('.fly-schedule-remove').show();
          } 
          else if (!(input as HTMLInputElement).checked) {
              $('.fly-schedule-removed_reason').hide();
              return $('.fly-schedule-remove').hide();
          }
      }
      
      

      【讨论】:

        猜你喜欢
        • 2019-04-21
        • 2022-01-13
        • 2021-12-15
        • 2019-09-16
        • 2017-08-08
        • 2018-10-19
        • 2019-11-21
        • 1970-01-01
        相关资源
        最近更新 更多