2011-02-28 7 views
0

JavaScriptおよびJQueryを使用して次のコードスニペットを実行する際に問題が発生しています。 listOfDisplayCategoriesはString値の配列です。JQueryセレクタがJS置換関数を使用して作成された文字列を認識しない

FireBugを使用してデバッグすると、displayCategoryWithoutSpecialCharに設定された値が私が期待する値であることが分かります。

次のステートメントでこの値をJQueryのセレクタとして使用しようとすると、期待した動作が表示されません。

基本的に、この値は有効なセレクタとして認識されません。それは失敗しないか、エラーを出すだけで、私が期待しているようにバックグラウンドイメージを設定しません。

displayCategoryWithoutSpecialChar変数の値をハードコードすると、正しく動作します。 JQueryのセレクタとして使用すると、このreplace関数から返された値が機能しないようです。誰か助けてくれますか?

var displayCategoryWithoutSpecialChar = 
    listOfDisplayCategories[i].replace(/[^a-zA-Z0-9]+/g, ""); 
$("#"+displayCategoryWithoutSpecialChar).css("background-image","url(images/Aut.png)"); 
+0

文字列とは何ですか? – SLaks

+0

また、CSSを変更したい要素のHTMLマークアップ。 – Chandu

+0

配列の最初の文字列は "Auto/Building Tech"です。置換機能の後、私は "AutoBuildingTech"を持っています。次のマークアップはCSSのターゲットです。

Auto/Building Tech

Lorem ipsum dolor sit amet, consectetur adipiscing elit posuere

答えて

0

問題は、私が使用していたセレクタがまだ存在しなかったHTMLに基づいていたことです。このコードスニペットは、HTMLコンテンツを作成したforループの内部にありました。私が指定しようとしていたセレクタは、まだドキュメントの一部ではなかったhtml用です。セレクタで行を移動すると、HTMLが追加された後にCSS関数が問題を修正しました。私はJQueryスクリプトを通して、document.getElementById(String)が呼び出されたところまでデバッグしました。この呼び出しは要素を返しませんでした。私はまだ文字列の値をハードコーディングすると、これが動作するのをなぜ許可していないのかはっきりしていません。ルーキーミス。

関連する問題