如何在jquery中获取具有特定id的所有元素的类

时间:2012-03-05 18:06:38

标签: jquery class

嗨,我知道这可能非常简单,但此时此刻我的大脑放屁!我需要使用x 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);

4 个答案:

答案 0 :(得分:2)

对同一DOM中的多个元素使用相同的id无效。你现在应该改变它!这可以防止您使jQuery ID选择器(#)按您希望的方式工作。但是,attr选择器仍然有效(".picture img[id=yes]")。

jQuery没有.class()方法。要获得课程,您需要使用.attr('class')

请记住,如果在选择器上调用方法,则只能获取该选择器找到的第一个元素。也就是说,$(".picture img[id=yes]").attr('class')将返回one.jpg,即使有多个元素与该选择器匹配。

顺便说一句,你拼错了图片。

答案 1 :(得分:1)

ID必须是唯一的!

所以答案很简单:

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

如果您使用$('img')选择器选择所有图片,则可以使用each功能提醒所有人:

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

JSFiddle

  • 请注意,如果您的div图片类与<div class="picture">一样,则不要使用</picture>关闭它。请使用</div>

答案 2 :(得分:1)

HTML文档中的所有ID都必须是唯一的。您可能希望使用data-id将该日期保存在URL中。要使用data-id="yes"获取每个所选图像的类,您可以执行以下操作:

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

答案 3 :(得分:0)

首先你的Ids必须是唯一的。 然后,没有方法&#39; class&#39;在jQuery中。我建议你使用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'));
    }
});`

希望它有用!