2017-02-06 6 views
0

Joomla CMSバックエンドのすべてのモジュールで使用できる汎用コードを作成しようとしています。 Foreachラベルを取得する - idを変更する - 親クラスに追加する

<div class="control-group"> 
    <div class="control-label"> 
    <label id="jform_params_some_text_here-lbl" for="jform_params_some_text_here" class="hasPopover"></label> 
    </div> 
    <div class="controls"></div> 
</div>  

するための最良の方法は何ですか:コードは、ラベルからIDを取得し、Joomlaのモジュールのクラスcontrol-group

基本的なビルドアップで最も近い親にクラスとしてこのIDを追加する必要があります

(function ($) { 
    $(document).ready(function() { 
    $("#jform_params_some_text_here-lbl").parents(".control-group").addClass("jform_params_some_text_here-cg"); 
    }); 
})(jQuery); 

しかし、私はそれが普遍持っている必要があります:普遍

私はこれで個別に設定することができます知ってこれを行います。

私は

  1. foreachのラベルは、IDを取得達成するために何をしたいです。
  2. は、クラスcontrol-group
  3. に最も近い親を探す手紙lblを削除し、文字cg
  4. と交換助けるため、この親に誰にでも

感謝を単に名前を変更したクラスを追加します!

答えて

1

jQueryの利用可能なhas attribute selectorを利用すると、定義されていないエラーを避けるために、定義済みのid属性を持つラベル要素のみを対象とすることができます。

// Step 1: Iterate through each label that has an `id` attribute 
$('label[id]').each(function(){ 
    // Step 2: Get your replacement id 
    var id = $(this).attr('id').replace('lbl','cg'); 
    // Step 3: Find your nearest parent with "control-group" class 
    var parent = $(this).parents('.control-group'); 
    // Step 4: Now set the class for your parent element 
    parent.addClass(id); 
}); 

次に、あなたの優先手順を見ることができるの下に注釈を付けなければなりません

関連する問題