用相应的unicode字符替换某些单词的脚本不起作用

Script that replaces certain words with corresponding unicode characters not working

本文关键字:单词 脚本 不起作用 字符 unicode 替换      更新时间:2023-09-26

我正在尝试用Unicode字符替换<nav>锚中的某些单词,每个锚一个单词。

但是,这个脚本似乎不工作,因为在视图源的文本是单词,而不是Unicode字符…

我做错了什么?

有没有更好的方法来做我想做的事情,这个脚本:

$("nav li a").text(function(i,currentText) {
    switch($(this).innerHTML()){
        case "CV":
            return currentText.replace(/CV/g, "&#xe00c;");
            break;
        case "down":
            return currentText.replace(/down/g, "&#xe00d;");
            break;
        case "Work":
            return currentText.replace(/Work/g, "&#xe010;");
            break;
        case "About":
            return currentText.replace(/About/g, "&#xe00f;");
            break;
        case "Resume":
            return currentText.replace(/Resume/g, "&#xe00e;");
            break;
        case "Mail":
            return currentText.replace(/Mail/g, "&#xe011;");
            break;
        case "Facebook":
            return currentText.replace(/Facebook/g, "&#xe013;");
            break;
        case "Twitter":
            return currentText.replace(/Twitter/g, "&#xe014;");
            break;
        case "Dribbble":
            return currentText.replace(/Dribbble/g, "&#xe015;");
            break;
        default:
            break;      
    }
 });

您正在尝试用HTML实体替换HTML,但您正在调用.text()而不是.html()

不需要使用.replace(),因为无论如何都要替换整个字符串。只返回实体。

你不会在"view source"视图中看到你的更改。这只显示了加载页面时的源文件。

如果你不做任何替换,你应该返回"currentText"。

$("nav li a").html(function(i, curHtml) {
  switch(curHtml){
    case "CV":
        return "&#xe00c;";
    case "down":
        return "&#xe00d;";
    // etc
    default:
      return currentHtml;
});