当前位置: 首页 > 知识库问答 >
问题:

Vanilla JS中具有4个值的按钮

咸高谊
2023-03-14

我想使一个按钮与4个不同的文本,将切换后点击它。

HTML:

<button onclick="changeButton()" class="button" id="button">EUR -> BTC</button>

JS:

function changeButton() {
let btn = document.getElementById("button");
if (btn.innerHTML === "EUR -> BTC") {
    btn.innerHTML = "BTC -> EUR"
} elseif (btn.innerHTML === "BTC -> EUR") {
    btn.innerHTML = "PLN -> BTC"
} else {
    btn.innerHTML = "BTC -> PLN"
}

}

我得到了这个:

index.html:15 Uncaught ReferenceError: changeButton is not defined
at HTMLButtonElement.onclick (index.html:15)

这个代码有什么问题?

共有1个答案

徐高韵
2023-03-14
  1. DomContentLoaded
  2. 包装脚本
window.addEventListener('DOMContentLoaded', (event) => {
    console.log('DOM fully loaded and parsed');
});

https://developer.mozilla.org/ko/docs/web/api/window/domcontentloaded_event

您的脚本代码没有运行,因为dom树在js脚本加载之前没有准备好工作

function changeButton(event) {
  const text = event.target.textContent
if ( text === "EUR -> BTC") {
  event.target.textContent = "BTC -> EUR"
} else if (text === "BTC -> EUR") {
    event.target.textContent = "PLN -> BTC"
} else {
  event.target.textContent = "BTC -> PLN"
}

当您尝试搜索之类的元素时,让btn=document.getElementById(“button”)浏览器必须在您单击按钮时搜索dom树。最好使用事件

 类似资料:
  • 问题内容: 我想在Java中实现具有多个值的哈希表,即 并且将返回2倍的值。 我怎样才能做到这一点? 问题答案: 您可以改用Multimap。它在列表中为一个键保留多个值。在commons- collection 和Guava中有实现。 这类似于使用值是列表的Hashmap,但是不必显式创建列表。 自己动手做的同一示例如下所示: 请注意,您可以将Multimap用作构建器,并对其调用asMap以返

  • 问题内容: 我需要一个假定具有两个功能的按钮。 如果我点击一次,它将转到下一页。如果我按住按钮,它将允许我编辑按钮上的文本。 单击该按钮可以转到下一页,但是如果我按住该按钮,该如何实现允许我更改文本的第二个功能? 有人知道吗 Java代码 xml代码 问题答案: 您可以将第二个函数设置为setOnLongClickListener: 第一个函数是与setOnclickListener相同的: 检查

  • 问题内容: 我需要一个假定具有两个功能的按钮。 如果我点击一次,它将转到下一页。如果我按住按钮,它将允许我编辑按钮上的文本。 单击该按钮可以转到下一页,但是如果我按住该按钮,该如何实现允许我更改文本的第二个功能? 有人知道吗 Java代码 xml代码 问题答案: 您可以将第二个函数设置为setOnLongClickListener: 第一个函数是与setOnclickListener相同的: 检查

  • 我正在使用C#和Selenium Web驱动程序。问题是我找不到一个没有ID值的开始按钮。 我为该对象找到的唯一标识符是'value=“74”‘文本。 按钮的HTML如下所示: driver.findElement(by.xpath(“(//input[@name='PRODUCT_ID'][@value='74'])”)).click(); 提前致谢

  • 我试图使用Laravel构建一个(稍微复杂的)订阅服务。 订阅类型为:20份早餐的早餐订阅,在注册后30天内使用。 例如,如果用户在4月1日注册早餐订阅,他可以选择任何20天,直到4月30日。 我制作了以下表格和相应的模型: 用户模型和表 订阅表和型号 订阅用户透视(?)带有软删除的表 我已经用belongsToMany关系更新了相应的模型 用户: 订阅模式 我需要帮助解决的问题1。数据库/模型结

  • 问题内容: 已锁定 。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我有一个简单的问题,几天以来一直困扰我:什么是VanillaJS?有人将其称为框架,可以从官方页面下载库。 但是,当我检查一些示例或TodoMVC时,它们仅使用经典的原始JavaScript函数,甚至没有包括官方页面或任何其他内容中的库。官方网页上的“文档”链接也指向Mozilla Jav