Javascript | 'element.style.display' 状态检查在 'if gate' 中不起作用?
Javascript | 'element.style.display' status check doesn't work in 'if gate'?
我想制作一个按钮,它可以更改 div 显示模式并更改按钮单击时的内部 HTML。
content2 的显示初始设置为 'none'。
我的代码目前没有任何改变。
感谢您的帮助。
Javascript
let button2 = document.getElementById('more-button-2');
let content2 = document.getElementById('more2');
button2.onclick = function() {
if (content2.style.display === 'none') {
content2.style.display = 'block';
button2.innerHTML = 'See less';
} else if (content2.style.display === 'block') {
content2.style.display = 'none';
button2.innerHTML = 'See more'
}
};
HTML
<div class='column'>
<div class='column-content'>
<h2>Two</h2>
<p>Explanation.</p>
<div class='more-button' id='more-button-2'>See more</div>
<p id='more2'>More</p>
</div>
</div>
正如 Pointy 评论的那样,错误出在我的样式中,只检查 html 定义的样式。
我已编辑代码以检查内部按钮HTML,现在可以使用了。虽然可能不是最佳实践...
button2.onclick = function() {
if (button2.innerHTML === 'See more') {
content2.style.display = 'block';
button2.innerHTML = 'See less';
} else if (button2.innerHTML === 'See less') {
content2.style.display = 'none';
button2.innerHTML = 'See more'
}
};
Element.stlye
没有 display
属性 直到它通过使用 Element.style.display = '...'
或 html
设置为元素。要获得 display
的准确值,请使用 getComputedStyle
。并且还使用三元运算符代替 if-else
let button2 = document.getElementById('more-button-2');
let content2 = document.getElementById('more2');
button2.onclick = function() {
let {display} = window.getComputedStyle(content2);
content2.style.display = display === 'none' ? 'block' : 'none';
button2.innerHTML = button2.innerHTML === 'See More' ? 'Show Less' : 'See More'
};
<div class='column'>
<div class='column-content'>
<h2>Two</h2>
<p>Explanation.</p>
<div class='more-button' id='more-button-2'>See more</div>
<p id='more2'>More</p>
</div>
</div>
我想制作一个按钮,它可以更改 div 显示模式并更改按钮单击时的内部 HTML。
content2 的显示初始设置为 'none'。
我的代码目前没有任何改变。
感谢您的帮助。
Javascript
let button2 = document.getElementById('more-button-2');
let content2 = document.getElementById('more2');
button2.onclick = function() {
if (content2.style.display === 'none') {
content2.style.display = 'block';
button2.innerHTML = 'See less';
} else if (content2.style.display === 'block') {
content2.style.display = 'none';
button2.innerHTML = 'See more'
}
};
HTML
<div class='column'>
<div class='column-content'>
<h2>Two</h2>
<p>Explanation.</p>
<div class='more-button' id='more-button-2'>See more</div>
<p id='more2'>More</p>
</div>
</div>
正如 Pointy 评论的那样,错误出在我的样式中,只检查 html 定义的样式。
我已编辑代码以检查内部按钮HTML,现在可以使用了。虽然可能不是最佳实践...
button2.onclick = function() {
if (button2.innerHTML === 'See more') {
content2.style.display = 'block';
button2.innerHTML = 'See less';
} else if (button2.innerHTML === 'See less') {
content2.style.display = 'none';
button2.innerHTML = 'See more'
}
};
Element.stlye
没有 display
属性 直到它通过使用 Element.style.display = '...'
或 html
设置为元素。要获得 display
的准确值,请使用 getComputedStyle
。并且还使用三元运算符代替 if-else
let button2 = document.getElementById('more-button-2');
let content2 = document.getElementById('more2');
button2.onclick = function() {
let {display} = window.getComputedStyle(content2);
content2.style.display = display === 'none' ? 'block' : 'none';
button2.innerHTML = button2.innerHTML === 'See More' ? 'Show Less' : 'See More'
};
<div class='column'>
<div class='column-content'>
<h2>Two</h2>
<p>Explanation.</p>
<div class='more-button' id='more-button-2'>See more</div>
<p id='more2'>More</p>
</div>
</div>