Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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 将图标放在按钮旁边_Javascript_Html - Fatal编程技术网

Javascript 将图标放在按钮旁边

Javascript 将图标放在按钮旁边,javascript,html,Javascript,Html,我遇到了一个问题。“显示更多”旁边有一个图标。按下时,它会消失,因为内部文本会被替换,所以我尝试了以下方法: document.getElementById("toggleButton").innerText = "Show Less <i class="fas fa-caret-down"></i>" ; 测试 显示更多 如果文本字符串包含需要呈现的html,则需要使用innerHTML而不是innerText: document.getElementById("

我遇到了一个问题。“显示更多”旁边有一个图标。按下时,它会消失,因为内部文本会被替换,所以我尝试了以下方法:

 document.getElementById("toggleButton").innerText = "Show Less <i class="fas fa-caret-down"></i>" ;

测试
显示更多

如果文本字符串包含需要呈现的html,则需要使用
innerHTML
而不是
innerText

document.getElementById("toggleButton").innerHTML

我建议改为切换一个类,在这里结合两个文本变体的伪类

堆栈片段

函数切换文本()
{    
document.getElementById(“textArea”).classList.toggle('hide');
document.getElementById(“toggleButton”).classList.toggle(“less”);
}
button::before{
内容:'显示更多';
}
button.less::before{
内容:“少展示”;
}
.textarea.hide{
显示:无;
}

测试

问题在于您正在此处替换按钮的全部内容:

document.getElementById("toggleButton").innerText = "Show Less";
您正在覆盖原始文本和图标,只需
“显示较少”

要解决此问题,您可以使用设置图标的新文本HTML:

buttonText.innerHTML = `Show Less <i class="fas fa-caret-up"></i>`;

显示更多

更多


为什么不改用Unicode<强>⮟⮋虽然非常简单,但这并不是一个真正的选项,因为大多数手机浏览器和一些linux浏览器最终都会看到boxesI。现在情况开始好转。我应该删除此帖子吗?@Cryptopat这是一个有效的答案,所以不要删除它,只显示一个箭头语法,然后发布到资源的链接。