2011-12-22 8 views
0

もう一度お詫び申し上げます - これはおそらく私のJQueryの知識が不足している可能性がありますが、動的にチェックし、次に動的に削除しようとするパラメータを渡すと、追加されたフィールド(除去の試みを停止する必要があり、チェックが行われて - 必要ない場合)単一のJquery関数を複数回呼び出すことができません

jQuery.fn.clearFields = function (clearField) { 

    var clearfield_search = "#"+clearField+"_search"; 
    var clearfield_link = "#"+clearField+"_link"; 
    var clearfield_search_label = "label[for='"+clearField+"_search']"; 
    var clearfield_link_label = "label[for='"+clearField+"_link']"; 
    alert("About to Remove"); 

    if ($(clearfield_search).length > 0) { 
           //Removal of Label and Field (Attempted) 
           //removal of inital break & labels 
           $(clearfield_search_label).prev('br').remove(); 
           $(clearfield_search_label).remove(); 
           $(clearfield_link_label).prev('br').remove(); 
           $(clearfield_link_label).remove(); 
           //Removal of fields 
           $(clearfield_link).remove(); 
           $(clearfield_search).remove(); 
    } 
    alert("Removed"); 
} 

しかし、私のジレンマは、私はこの関数に明示的な(複数の呼び出し)を作るために見ることができないです - - など

jQuery.fn.clearFields("ebsco"); 

jQuery.fn.clearfields("summon"); 

これは最初の関数cal私は実行されます - 他の何も起こらない - 非常にイライラ。

forループまたは.eachメソッドを使用して呼び出しを実装する必要がありますか?それとももっと基本的なものがあると思いますか?これを行うにはもっとクリーンな方法がありますか?再び

ネイトさんのコメント、このような何かごとに限り

+1

NB: '$(selector ')。clearFields()'のように、セレクタで使用しない場合は 'jQuery.fn'ではなく' jQuery'を拡張する必要があります。 –

+2

なぜJQueryを拡張するのですか?なぜこれを通常の関数として宣言していないのでしょうか? –

答えて

0

を感謝任意のフィードバック:ちょうどそれ定期的に機能することに加えて

var clearField = function (clearField) { 

    var $clearfield_search = $("#"+clearField+"_search"); 
    var $clearfield_link = $("#"+clearField+"_link"); 
    var $clearfield_search_label = $("label[for='"+clearField+"_search']"); 
    var $clearfield_link_label = $("label[for='"+clearField+"_link']"); 
    alert("About to attempt remove"); 

    if ($clearfield_search.length > 0) { 
           //Removal of Label and Field (Attempted) 
           //removal of inital break & labels 
           $clearfield_search_label.prev('br').remove(); 
           $clearfield_search_label.remove(); 
           $clearfield_link_label.prev('br').remove(); 
           $clearfield_link_label.remove(); 
           //Removal of fields 
           $clearfield_link.remove(); 
           $clearfield_search.remove(); 
    } 
    alert("Remove attempt completed"); 
}; 

、私はむしろ、その文字列をキャッシュするよりも、完成したjQueryオブジェクトをキャッシュされました後でjQueryオブジェクトを作成するために使用されます。私は個人的に、jQueryオブジェクトである変数にドル記号を入れたいのですが、それは私だけです。あなたはする必要はありません。

+0

すべてのフィードバックとアドバイスに感謝します。 –

関連する問題