0

私の のアンカー内の特定の単語を、アンカー<nav>ごとに 1 つの単語を 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 に答える