【问题标题】:Javascript toggle button to change its captionJavascript切换按钮以更改其标题
【发布时间】:2026-01-30 03:55:02
【问题描述】:

我在 HTML 中使用的代码如下

$(function() {
  $("#button").click(function() {
    $("span.text").toggle();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="button">Text ON</button>

<span class="text">Text</span>

单击按钮时,文本会出现或消失。

如何使按钮标题“Text ON”与另一个标题“Text OFF”交替出现,同时文本出现和消失?

【问题讨论】:

  • 如果文本可见,您是否尝试过 $('button').value('Text ON'),如果不可见,是否尝试过 ....Text OFF? (反之亦然,这取决于你想要什么。)
  • 如果文本可见,您是否尝试过 $('button').value('Text ON'),如果不可见,是否尝试过 ....Text OFF? (反之亦然,这取决于你想要什么。)
  • @mrunion 不,我没有,我是代码文盲,我要求逐字显示正确的代码
  • i'm asking to be shown the correct code verbatim 这不是这个网站的运作方式。
  • 好吧,我无处可问

标签: javascript jquery html button toggle


【解决方案1】:

您可以在切换后使用is(:visible) 方法检查span可见还是隐藏。现在根据状态,更改按钮文本如下。

$(function() {
  $("#button").click(function() {
    var $btn = $(this);
    var $span = $("span.text");
    $span.toggle(400, function() {
      if ($(this).is(":visible")) {
        $btn.text('Text ON');
      } else {
        $btn.text('Text OFF');
      }
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="button">Text ON</button>

<span class="text">Text</span>

【讨论】:

  • 如果我不必将整个代码转换成 HTML,这是否可以在完全不引用 jquery.min.js 的情况下实现?
  • 该库被拉到这个站点以使实时代码工作。你可以坚持你的方式,包括 jquery。这里的主要要求是 jQuery 必须存在。
  • 所以基本上我必须包含 jquery.min.js 的全部内容,对吗?
  • 如果 jquery 未包含在您的站点中,则使用 CDN 链接和脚本标记将其包含在上面的答案中。