为每个ID删除三个字母并添加两个字母

时间:2017-02-06 21:07:40

标签: jquery replace each

我正在抓取页面上所有标签的ID。我知道要从中删除三个字母并用两个字母替换它们。

我得到了以下内容:

(function ($) {
  $(document).ready(function() {
    $('label').each(function(index) {
      var id = $(this).attr('id');
      var idm = id.replace('lbl','cg')
      $(this).parents('.control-group').addClass(idm);
    });
  });
})(jQuery);

但我收到错误Cannot read property 'replace' of undefined

在我的第一次尝试中,我这样写了但是得到了同样的错误:

(function ($) {
  $(document).ready(function() {
    $('label').each(function(index) {
      var id = $(this).attr('id').replace('lbl','cg');
      $(this).parents('.control-group').addClass(id);
    });
  });
})(jQuery);

1 个答案:

答案 0 :(得分:2)

  

但我收到错误无法读取未定义的属性'replace'

这很可能是因为您的<label>个元素之一未定义id个属性。

您可以考虑仅定位您已知道具有<label>属性的id元素,如下所示,使用the has attribute selector

// Only target a label with a defined id attribute
$('label[id]').each(function(index) {
   var id = $(this).attr('id').replace('lbl','cg');
   $(this).parents('.control-group').addClass(id);
});