jquery - 使用 jQuery 检查文本是否等于 html 特殊字符

标签 jquery html

我有一个 html 特殊字符,我想像复选框一样打开和关闭。在本例中,它是一颗星:☆,可以填充:★。

我想检查点击时星星的状态。

$(".action_table_star").click(function() {
    if ($(this).html() == "★") {
        $(this).html("☆");
        $(this).css('color', 'white');
    } else {
        $(this).html("★");
        $(this).css('color', 'rgb(255,165,0)');
    }
});

但这不起作用,因为 $(this).html() 永远不等于“★”。我怎样才能重写这个if语句来解码html特殊字符并检查它的“状态”?

最佳答案

不要使用 .html(),而是将 .text()\uxxxx 序列结合使用,或 String.fromCharCode() .

$(".action_table_star").click(function() {
    if ($(this).text() == String.fromCharCode(9733)) {
        $(this).html("☆");
        $(this).css('color', 'white');
    } else {
        $(this).html("★");
        $(this).css('color', 'rgb(255,165,0)');
    }
});

当使用\uxxxx方法时,您必须将base-10数字charcode转换为base-16数字charcode。示例(在控制台中):

(9734).toString(16);
// Returns 2606. Now, paste `"\u2606"` in your code

不要忘记填充足够的零以获得 4 位数字。

关于jquery - 使用 jQuery 检查文本是否等于 html 特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9844756/

相关文章:

html - CSS 网格模板中的边距

javascript - 满足某些条件后发送电子邮件

javascript - 使用 jquery 将位置从相对位置更改为固定位置?

jquery - 如何获取元素内最近的文本?

javascript - 获取以 Anchor 标记编写的文本

html - Bootstrap 4 - 更改移动设备中 5 列布局的顺序

javascript - 从函数中传递的提交表单中获取字段值

html - bootstrap 说崩溃是什么意思?

javascript - 使用 javascript 添加 float

javascript - 从具有延迟的数组顺序执行生成(jquery)