Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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 onclick-won´;我一点也不工作_Javascript - Fatal编程技术网

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>