Foreach标签获取id - 修改此id - 添加到父类

时间:2017-02-06 20:42:58

标签: jquery foreach

我正在尝试制作一个通用代码,可以在Joomla CMS后端的每个模块中使用。代码需要从标签中获取ID,并将此id作为类添加到最近的父类control-group

Joomla模块的基本构建:

<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>     

普遍做到这一点的最佳方法是什么

我知道我可以用这个来设置它:

 (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. 删除字母lbl并替换为字母cg
  3. 使用班级control-group
  4. 查找最近的父级
  5. 将刚刚重命名的类添加到此父级
  6. 感谢大家的帮助!

1 个答案:

答案 0 :(得分: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);
});