0

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

但是,这个脚本似乎不起作用,因为视图源中的文本是单词而不是 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;      
    }
 });
4

1 回答 1

0

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

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

您不会在“查看源代码”视图中看到您的更改。这只是显示页面加载时的源。

如果您不进行任何替换,则应返回“currentText”。

$("nav li a").html(function(i, curHtml) {
  switch(curHtml){
    case "CV":
        return "&#xe00c;";

    case "down":
        return "&#xe00d;";

    // etc

    default:
      return currentHtml;
});
于 2013-04-06T19:15:02.070 回答