Javascript onclick-won´;我一点也不工作
我有这个功能:Javascript onclick-won´;我一点也不工作,javascript,Javascript,我有这个功能: <script> function bookmark() { var element = document.getElementById("bookmark"); if (element.innerHTML === "Bookmark") { element.classList.add("bookmarked"); element.innerHTML =
<script>
function bookmark() {
var element = document.getElementById("bookmark");
if (element.innerHTML === "Bookmark") {
element.classList.add("bookmarked");
element.innerHTML = "Bookmarked";
} else {
element.classList.remove("bookmarked");
element.innerHTML = "Bookmark";
}
}
</script>
按钮{
颜色:白色;
字体大小:粗体;
高度:56px;
宽度:204px;
边界半径:33.5px;
边界:0px;
}
按钮:悬停{
光标:指针;
}
.书签{
背景重复:无重复;
背景色:rgba(47,47,47,0.05);
颜色:#7a7a;
}
.书签:悬停{
光标:指针;
背景重复:无重复;
背景色:rgba(47,47,47,0.05);
}
.书签,
。书签:悬停{
光标:指针;
背景重复:无重复;
背景色:rgba(47,47,47,0.05);
}
书签
使用trim()
函数书签(){
var元素=document.getElementById(“书签”);
if(element.innerHTML.trim()=“书签”){
元素。类列表。添加(“书签”);
element.innerHTML=“书签”;
}否则{
element.classList.remove(“书签”);
element.innerHTML=“书签”;
}
}
按钮{
颜色:白色;
字体大小:粗体;
高度:56px;
宽度:204px;
边界半径:33.5px;
边界:0px;
}
按钮:悬停{
光标:指针;
}
.书签{
背景重复:无重复;
背景色:rgba(47,47,47,0.05);
颜色:#7a7a;
}
.书签:悬停{
光标:指针;
背景重复:无重复;
背景色:rgba(47,47,47,0.05);
}
.书签,
。书签:悬停{
光标:指针;
背景重复:无重复;
背景色:rgba(47,47,47,0.05);
}
书签
不要使用“innerHTML”字段进行比较。使用classList.contains()方法。并检查是否分配了课程。
在按钮文本“书签”之前添加空格。可以使用trim()函数删除空格,然后进行比较。更改下面的行
if (element.innerHTML.trim() === "Bookmark")
我注意到的第一件事是,您正在fn()中选择HTML元素
我认为您应该首先选择元素,然后在按钮上单击事件运行后续函数
这里有一个替代你的方法
PS:你只需要更新你的脚本,其他什么都不需要
步骤1:按id查找元素假设只有一个这样的元素,您也可以使用querySelectorAll来执行此操作
步骤2:添加单击该元素的事件监听器
步骤3:运行Fn()代码
var元素=document.getElementById(“书签”);
if(元素){
元素。addEventListener(“单击”,(e)=>{
如果(e.innerHTML==“书签”){
e、 添加(“书签”);
e、 innerHTML=“书签”;
}否则{
e、 类列表。删除(“书签”);
e、 innerHTML=“书签”;
}
});
}
使用innerText而不是innerHTML
function bookmark() {
var element = document.getElementById("bookmark");
}
<script>
var element = document.getElementById("bookmark");
if (element) {
element.addEventListener("click", (e) => {
if (e.innerHTML === "Bookmark") {
e.classList.add("bookmarked");
e.innerHTML = "Bookmarked";
} else {
e.classList.remove("bookmarked");
e.innerHTML = "Bookmark";
}
});
}
</script>