无法在HTMLButtonElement读取null的属性“样式”

时间:2020-09-20 16:11:18

标签: javascript html nullpointerexception dom-events

我的Javascript无法加载,在我的JavaScript Sequence的第9行中说:“无法在HTMLButtonElement上读取null的属性'style'。”

这是我的HTML:

extension Collection where Element: Equatable {
    func classifyElementEquality() -> (allEqual: Bool, allUnequal: Bool) {
        guard let first = self.first else {
            return (true, true) // all empty
        }
        
        return self
            .dropFirst()
            .reduce(into: (allEqual: true, allUnequal: true)) { acc, element in
                if first == element {
                    acc.allUnequal = false
                } else {
                    acc.allEqual = false
                }
            }
    }
}

这是我对应的JavaScript:

if (panel.style.maxHeight)

1 个答案:

答案 0 :(得分:1)

检查面板是否存在同级并将手风琴放置在与面板相同的水平上。

删除了按钮周围的段落包装以演示其功能

var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) {
  acc[i].addEventListener("click", function() {
    this.classList.toggle("active");
    var panel = this.nextElementSibling;
    if (!panel) return;
    if (panel.style.maxHeight) {
      panel.style.maxHeight = null;
    } else {
      panel.style.maxHeight = panel.scrollHeight + "px";
    }
  });
}
<button class="accordion">Section 1</button>
<div class="panel">
  <p>Lorem ipsum...</p>
</div>

<p><button class="accordion">Section 2</button></p>
<div class="panel">
  <p>Lorem ipsum...</p>
</div>

<p><button class="accordion">Section 3</button></p>
<div class="panel">
  <p>Lorem ipsum...</p>
</div>