2017-02-06 7 views
0

ページのすべてのラベルからIDを取得しています。私はそれから3文字を削除し、それらを2文字に置き換えることを知っています。は3文字を削除して2文字を追加します

(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); 
+0

ラベルの_all_はIDを持っていますか:

あなたが考えるかもしれない

the has attribute selectorを用いて以下に見られるように、すでにid属性を持って知っている<label>要素をターゲットに? – Turnip

+0

それは普遍的なので知らないので、私はidですべてのラベルをチェックしてから実行するように、リオンからの回答を選択しました。 – purple11111

答えて

2

But I get the error Cannot read property 'replace' of undefined

あなたの<label>要素の1つにが含まれていない可能性があります属性が定義されています。

// 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); 
}); 
+0

これは本当にありがとうございます、それは魅力のように動作します。私は10分で受け入れることができます。 – purple11111

+0

約20分前に別の質問をしましたが、これはこの問題に関連しています。実際にここで指定したコードは、その質問に必要な正確なコードです。他の質問を削除する必要がありますか(別の質問ですが)、またはこの回答を投稿することはできますか?または私はそれを投稿する必要がありますか? http://stackoverflow.com/questions/42076925/foreach-label-get-id-modify-this-id-add-to-parent-class その間、この質問へのリンクを掲載しました。 – purple11111

関連する問題