javascript - 使用 jQuery 单击时切换跨度文本

标签 javascript jquery

我正在尝试编写一个可重用的脚本,用于在单击时切换元素的文本。

我可以点击它,但无法将其切换回来。我的 if 语句有问题吗?

<span class="js-textEdit" data-text="Show less">Show more</span>


$('.js-textEdit').click(function() {
  var oldText = $(this).text();
  var newText = $(this).attr('data-text');

  if ($(this).text(oldText)) {
    $(this).text(newText);
  } else {
    $(this).text(oldText);
  }
});

这是一个JSFIddle

此外,是否有更干净的方法来重构它?我使用数据属性来确定新文本,而不是使用 ID 并为每个要使用它的元素编写单独的脚本。数据属性方法是一个好方法吗?

最佳答案

$('.js-textEdit').click(function () {
    var oldText = $(this).text();
    var newText = $(this).data('text');
    $(this).text(newText).data('text',oldText);
});

<强> jsFiddle example (还有一个稍微 better example 以展示它如何在多个元素上工作)

关于javascript - 使用 jQuery 单击时切换跨度文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22359097/

相关文章:

javascript - 从函数 jquery 调用数组

javascript - 如何对 WebGL 着色器进行基准测试?

javascript - 在链接选择上使用 jQuery 添加/删除类

javascript - 在 js 操作后定位最后一个可见的 div?

javascript - 如何用 PHP 制作一个可以点击按钮并在页面上提交表单的网络爬虫?

javascript - 通过调整 dropzone.js 压缩图像

javascript - Asp.NET MVC 中的模态

javascript - 仅获取日期的时间戳,反之亦然

javascript - 无需重新加载页面即可对 JS 数组进行排序

Javascript/jQuery .each 和语法问题