Jquery:如何删除第二次点击时的删除线?

标签 jquery css

我刚刚学习 Jquery,想使用一个按钮在单击时向列表项添加“文本装饰”。我遇到的问题是,我无法使用同一按钮在第二次单击时将“文本装饰”恢复为“无”?

这是 Jquery 代码:

$(document).ready(function() {
    $(".button1").click(function() {
    $("ul li:nth-child(1)").css("text-decoration", "line-through");
    });
});

我尝试复制第 2 行和第 3 行,并将同一函数中的文本装饰更改为“none”,但没有成功。

谢谢!

最佳答案

在 CSS 中定义一个类:

.stroked{ text-decoration: line-through; }

然后就:

$(document).ready(function() {
    $(".button1").click(function() {
    $("ul li:nth-child(1)").toggleClass('stroked');
    });
});

编辑:当您学习 jQuery 的基础知识时,请考虑缓存您的选择器[如果它们的内容在页面生命周期中没有改变]:

$(document).ready(function() {

    var $li = $("ul li:nth-child(1)");

    $(".button1").click(function() {
      $li.toggleClass('stroked');
    });
});

因此您不必在每次点击时都执行选择。

关于Jquery:如何删除第二次点击时的删除线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20806781/

相关文章:

几次 jQuery 调用后的 javascript 回调函数

javascript - 发送多个内容类型 Ajax

css - <BODY>位置关闭,无法添加固定背景图

javascript - 如果另一个 div 包含任何文本、内容或 html,则隐藏 div

javascript - Swiper.js 与 Rangeslider.js - 在 Rangeslider.js onSlide 回调函数上禁用 Swiper.js 触摸事件

jquery - 选择使用自定义渲染动态刷新项目

javascript - 从 css 文件中检索高度属性时遇到问题

javascript - 如何使引导导航栏在小屏幕上从右到左顺利切换 chrome?

javascript - 在鼠标滚动时滚动 100%

javascript - 在任一方向平滑滚动文档