javascript - Jquery html() 内部条件检查

标签 javascript jquery html dom

这些是我的代码的摘录

<button>Hook It!</button>

和一些 JQuery

$("ul li .tag_detail button").on('click', function() {
    console.log($(this).html());
    if ($(this).html() == 'Hook It!') {
        $(this).html('Unhook!');
    }
    if ($(this).html() == 'Unhook!') {
        $(this).html('Hook It!');
    }
});

现在,正如你所看到的,我想要一个切换效果,即当我单击按钮时,它应该在 Hook It! 之间切换。然后松开!。

问题就出在这里

if($(this).html() == 'Hook It!')

这里,当控制台日志打印 Hook It 时,这种情况永远不会过去!

console.log($(this).html());

最佳答案

问题是第一个如果条件满足则内容更改为Unhook,然后第二个满足,因为内容被第一个条件更改,现在第二个 block 执行更改html返回 Hook

$("ul li .tag_detail button").on('click', function () {
    var text = $(this).text();
    console.log(text);
    if (text == 'Hook It!') {
        $(this).html('Unhook!');
    } else if (text == 'Unhook!') {
        $(this).html('Hook It!');
    }
});

可能是另一个版本

$("ul li .tag_detail button").on('click', function () {
    $(this).text(function(idx, text){
        return text == 'Hook It!' ? 'Unhook!' : 'Hook It!';
    });
});

关于javascript - Jquery html() 内部条件检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19107949/

相关文章:

javascript - HTML Canvas 和 Javascript - 图像周围的阴影而不是边框

php - 如何链接我的面包屑上的链接?

javascript - bValidator 函数返回 true 时如何调用函数?

javascript - Riot JS 文本搜索错误

javascript - 设置 window.location 后继续执行 javascript 代码以调用 Controller 中的 get 方法吗?

javascript - 浏览器没有重定向,但 url 正在改变

java - 使用ajax发送用户名和密码安全吗?

jQuery 序列化对象?

javascript - 对话框中的 jquery 火灾事件

html - 如果没有选择日期,将日期输入字段的默认占位符区域更改为文本 "Date"