jquery:同时选择和元素类和id?

时间:2014-07-03 06:00:29

标签: javascript jquery

编辑1 (抱歉造成混淆)

$(this).hide();

将适用于此特定ID。但我想我可以清楚地提出我的问题。虽然我得到了答案,但我现在已经编辑了它以供将来参考。


我有这样的元素

<img src='images/star-transparent.png' id='star_transparent-1' width='30' height='30' class='star_transparent' />
<img src='images/star-transparent.png' id='star_transparent-2' width='30' height='30' class='star_transparent' />
<img src='images/star-blue.png' id='star_blue-1' width='30' height='30' class='star_blue' />
<img src='images/star-blue.png' id='star_blue-2' width='30' height='30' class='star_blue' />

等等.. 我想要的是触发onclick事件到类,并隐藏被点击的透明图像并显示彩色的。我目前的jquery是 -

$('.star_transparent').click(function() {
    var star_id = $(this).attr('id');
    $(this).hide();
    //how to write the 'id' with 'class' in the following line
    $('.star_blue').show();
});

在一个similar question here中,建议的答案说使用类似 -

$("#star_transparent-1.star_transparent");
or
$("#star_transparent-1 .star_transparent");

但是,在我的情况下star_transparent-1star_transparent-2,即 ID本身就是一个派生自class.click 函数的变量。那我该怎么写呢?

此外,在上面提到的答案中,有人说#star_transparent-1.star_transparent#star_transparent-1 .star_transparent是两回事。它被引用为 -

  

空格是后代选择器,即A B表示“全部匹配”   匹配B的元素,它们是匹配A“的元素的后代。   AB表示“选择与A和B匹配的所有元素”。

但是,我很遗憾地说,我不明白。如果有人能够更容易地解释它,那将是一个很大的帮助。

感谢。 问候

博士。 Atul Tiwari

3 个答案:

答案 0 :(得分:0)

代码中不能有多个具有相同ID的元素。

答案 1 :(得分:0)

您可以使用关键字this本身隐藏已点击的图片。

$('.star_transparent').click(function() {
    $(this).hide();
});

使用id:

的选择器
$('.star_transparent').click(function() {
    var star_id = $(this).attr('id');
    $('#'+star_id+'.star_transparent').hide();
});

答案 2 :(得分:0)

由于您有不同的ID,因此您可以轻松地使用它来隐藏。

$('。star_transparent')。click(function(evt){

var star_id = $(evt.currentTarget).attr('id');
$('#' + star_id).hide();

});

由于