2012-03-05 20 views
0

こんにちは私はこれはおそらく超簡単だと知っていますが、この時点で私は脳のおならを持っています! x idを持つすべての要素のクラスを取得する必要があります。そして、私はそれらのクラス名を印刷する必要があります。例:jqueryで特定のIDを持つすべての要素のクラスを取得する方法

HTML:

<div class="picture"><img src="one.jpg" class="one.jpg" id="yes"></picture> 
<div class="picture"><img src="ones.jpg" class="ones.jpg" id="no"></picture> 
<div class="picture"><img src="oned.jpg" class="oned.jpg" id="yes"></picture> 
<div class="picture"><img src="onez.jpg" class="onez.jpg" id="yes"></picture> 
<div class="selected"></div> 

のjQuery:

var selectedImg = $(".picutre img").attr("id","yes").class(); 
    $(".selected").html(selectedImg); 
+0

'html'では要素ごとに一意のIDを1つだけ持たなければなりません。 –

+0

IDは一意である必要があります。重複は避けてください。これはあなたのスクリプトを混乱させる可能性があります。代わりに 'name'属性を使うことができます。 –

+0

ここに回答してもいいですかhttp://stackoverflow.com/questions/1536117/how-can-i-get-the-current-class-of-a-div-with-jquery – Nikhil

答えて

0

まず、あなたのIDは一意である必要があり。 次に、jQueryにメソッド 'class'はありません。 HTML5 dataをjQueryと併用することをお勧めします。

HTML:

<div class="picture"> 
    <img src="test.jpg" class="one.jpg" data-bool="yes" /> 
    <img src="test.jpg" class="ones.jpg" data-bool="no" /> 
    <img src="test.jpg" class="oned.jpg" data-bool="yes" /> 
    <img src="test.jpg" class="onez.jpg" data-bool="yes" /> 
</div> 
<div class="selected"></div> 

のjQuery:

$('.picture img').each(function(){ 
    var $this = $(this); 
    if($this.data('bool') == 'yes'){ 
     $('.selected').append($this.attr('class')); 
    } 
});` 

はそれが便利だったホープ!

1

IDが一意でなければなりません!

だから、答えは簡単です:

var class = $('#x').attr('class'); 

あなたがeach機能でそれらすべてを警告することができ$('img')セレクタを持つすべての画像を選択した場合:

$('img').each(function(){ 
    alert($(this).attr('class')); 
}); 

JSFiddle

  • 注あなたはあなたのような絵のクラスでdivを持っている時に行うことを:<div class="picture">あなたは同じDOMが無効であるに複数の要素に同じidを使用して</div>
2

でそれを閉じ</picture>でそれを閉じないでください。これを今すぐ変更する必要があります!これにより、jQuery IDセレクタ(#)が必要なように動作しなくなります。ただし、attrセレクタは引き続き動作します(".picture img[id=yes]")。

jQueryには.class()メソッドがありません。クラスを取得するには、.attr('class')を使用する必要があります。

セレクタでメソッドを呼び出すと、そのセレクタで最初に要素が見つかるだけで、が得られます。つまり、$(".picture img[id=yes]").attr('class')は、そのセレクタに一致する要素が複数あるとしても、one.jpgを返します。

ところで、スペルミスの絵があります。

+0

同じIDを持つ複数の要素を使用することは、HTMLページで一意のIDを持つというHTMLポリシーに反します。この答えでここに与えられた答えは、最も正しいものです。質問と同じようなこのフィドルを試してみてください - http://jsfiddle.net/harshithjv/uSN3c/ –

1

HTMLドキュメント内のすべてのIDは一意である必要があります。 URLの日付を保存するには、data-idを使用します。あなたがこれを行う可能性がありますdata-id="yes"と、選択した各画像のクラスを取得するには:

var selectedImg = $('img[data-id="yes"]').attr('class');

関連する問題