2012-02-29 9 views
0

私はコンテンツで動的に生成されるいくつかのdivを持っています。私は、AJAXを経由して送信するためのparamとしてそれを必要とするので、私はdiv要素のidを選択するにはどうすればよいjqueryでクラスattrを取得する

<div class="div-1"></div> 
<div class="div-3"></div> 
<div class="div-6"></div> 
<div class="div-8"></div> 

:私はそうのようなのdivのクラスにコンテンツIDを追加します。例えばあなたは上のクリックした場所thisポイントDOM要素に私は

+2

'$(この).ATTR( 'クラス')' – zzzzBov

+0

[要素のすべてのCSSクラスを取得するにはどうすればいいですか?](http://stackoverflow.com/questions/9279368/how-to-get-all-css-classes-of-an-element) –

+0

私は思いますあなたはクラスとIDを混同しています。 class = ""をid = ""に切り替えると、IDについて話しています。あなたは$( 'div')をバインドすることができます。(function(){var this_ID = $(this).attr( 'id); this_ID.replace(' div- '、' ');});クイック、汚れ、テストされていない。 – isotrope

答えて

1
var id = $(this).attr('class').replace('div-', ''); 

、あるいは簡単な

var id = this.className.replace('div-', ''); 

に第二などをクリックしたときに私が第一のdiv、3をクリックしたときに1を取得する必要がありますクリックハンドラの内部

//Here instead of document it is better to specify a parent container of all divs 
$(document).on('click', '[class^="div-"]', function(){ 
     var id = this.className.replace('div-', ''); 
}); 
0

これを試してみてください、そして、あなたの選択のための"div"を変える覚え:

$(document).on("click", "div", function() { 
    var class_elem = $(this).attr("class").split("-"); 
    var n = class_elem[1]; // This is your number 
}); 
+1

あなたは 'on'を正しく使っていません。' bind( 'click'、...) 'と同じくらい良いです。これは、動的に作成された要素では機能しません。 – ShankarSangoli

+0

私はこれを編集しましたが、これはこの質問には関係しないと思います。 – mariogl

+0

それはFYIだった... – ShankarSangoli

0

正しいjQueryの構文は次のとおりです。

$("div").click(function() { 
    var id = $(this).attr('class').replace('div-', ''); 
}); 
関連する問題