编辑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-1
或star_transparent-2
,即 ID本身就是一个派生自class.click 函数的变量。那我该怎么写呢?
此外,在上面提到的答案中,有人说#star_transparent-1.star_transparent
和#star_transparent-1 .star_transparent
是两回事。它被引用为 -
空格是后代选择器,即A B表示“全部匹配” 匹配B的元素,它们是匹配A“的元素的后代。 AB表示“选择与A和B匹配的所有元素”。
但是,我很遗憾地说,我不明白。如果有人能够更容易地解释它,那将是一个很大的帮助。
感谢。 问候
博士。 Atul Tiwari
答案 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();
});
由于