0

私がやろうとしているのは、特定の ID 内のリストをループし、各用語を定義済みの用語リストに置き換えることです。

  • ホーム > ホーマー
  • デイブ > デビッド
  • チェック > チェックメイト

これを達成するために必要なコードは次のとおりです

    $(document).ready(function(){
        $("#SomeID li").find(".menu-item-text").each(function(){
        var text = $(this).text();
        text = text.replace("Home", "Homer");
        text = text.replace("Dave", "David");
        text = text.replace("Check", "Check Mate");
        $(this).text(text);
      });
    });

これは、置換可能なすべての用語を配列内でキューに入れ、テキストを一度検索して、ヒットした用語を置換することで実行できると思います。ただし、できる限り試してみてください。これはまったく発生していません。上記が機能させる唯一の方法であり、間違っているように見えます。

編集 - 置換する単語が約 40 あるため、効率的である必要があることに注意してください。

4

1 に答える 1

1

始めたばかりのときは、効率についてあまり心配しません。まず言語を学び、次に効率的なコードの書き方を学びます。別の解決策は次のとおりです。

$(function(){
    var initialWords = ["Home", "Dave", "Check"];
    var replacementWords = ["Homer", "David", "Check Mate"];

    $("#SomeID li").each(function(){
        var listItem = $(this);
        var wordIndex = initialWords.indexOf(listItem.text());

        if(wordIndex > -1) {
            listItem.text(replacementWords[wordIndex]);
        }
    });
});
于 2013-07-15T22:58:38.800 に答える