javascript - 用JS隐藏文本
问题描述
我在另一个线程中问过这个问题并得到了一些有用的建议。我重新发布这个是因为我没有在其他帖子上获得任何牵引力。
我有一小行 html 可以打开一个侧导航栏:
<div id="main">
<span id="open" style="font-size:30px;cursor:pointer">☰ Open</span>
<img class="imgcenter" src="/images/eggs.jpg">
<p>Where </p>
<img class="imgcenter" src="/images/eggs.jpg">
</div>
当点击 ☰ 打开时,应该显示隐藏“打开”的这个 html 的相应 js:
document.getElementById("open").addEventListener("click", function openMainNav() {
document.getElementById("myMainNav").classList.add('sideNavOpen');
document.getElementById("main").classList.add('lmarg250');
var x = document.getElementById("open");
if (x.innerHTML === "☰ Open") {
x.innerHTML = "☰";
} else {
x.innerHTML = "☰ Open";
}
});
我被指示删除 hmtl 中的“onclick”,因为它是不安全的,而且我的 var x 没有定义,所以我已经定义了它。我已经修复了这两个问题,但我无法隐藏“打开”文本。我相信问题在于我如何对元素进行分组或如何分配我的 ID?任何建议将不胜感激。
解决方案
我稍微简化了你的问题。您正在将 charcode 与 charcode 的字符串表示形式进行比较。您可以使用String.fromCharCode()来获取字符并匹配它。
document.getElementById("open").addEventListener("click", function() {
let span = document.getElementById("open");
if (span.innerHTML === String.fromCharCode(9776).concat(" Open") )
span.innerText = String.fromCharCode(9776);
else
span.innerText = String.fromCharCode(9776).concat(" Open");
});
<span id="open" style="font-size:30px;cursor:pointer">☰ Open</span>
PS:如果您使用的是回调函数,则无需命名。
推荐阅读
- reactjs - 为反应下拉树添加自定义 css 选择所有其他 css mashup
- python - 蟒蛇基维。标签没有文本,但是,我将其值分配给了变量
- oracle - Oracle 将表重命名为临时表,创建新表,然后将数据从临时表移动到新表
- c# - 文本框绑定到 uint - 用户输入验证
- sql - 根据传递的参数过滤where子句中的列?
- wordpress - 如何根据 Woocommerce 购物车的变化更改价格
- java - 如何避免在 java lambda 表达式中定义单元素数组
- python - 执行脚本时出现 Python 错误
- python - 它会给我什么以及如何访问这些元素?
- selenium - selenium 服务器独立:无法在无头模式下创建与 vagrant 的新会话