1
var searchp   = $('body'),
    searchval = searchp.html(),
    name      = ['Abraham Lincoln', 'George Washington'];
    cname     = name.toLowerCase().replace(/ /g, ''),
    restr     = searchval.split(name).join('<a href="#" data-name="'+cname+'">'+name+'</a>');

searchp.html( replacestr );

ちょっとした置換機能について助けが必要です。name= 'string name' を使用すると問題なく動作しますが、配列では動作しません。うまくいけば、あなたは私を助けることができます.

4

1 に答える 1

1

メソッドtoLowerCase()を提供しない配列を呼び出そうとしました。toLowerCase()代わりに、次のようにその配列で項目を指定する必要があります。

cname     = name[0].toLowerCase().replace(/ /g, ''),

Chrome で実行すると、次のメッセージが表示されたので、ブラウザのコンソールを開くと、これを簡単に見つけることができます。

キャッチされていない TypeError: オブジェクト Abraham Lincoln、George Washington にはメソッド 'toLowerCase' がありません

あなたの質問へのコメントは、おそらく要素のインデックスをハードコーディングしたくないことを示していますが、代わりにループを使用しています。私はあなたのコード#bodyをいじろうとしましたが、あなたの行にセマンティックを取得するための入力が欠落しているようです。

var name = ['Abraham Lincoln', 'George Washington'];
$(name).each(function(key, value){
    console.log(value.toLowerCase());
});

​
于 2012-09-09T15:00:00.317 に答える