Javascript 在处理事件时,如何将具有特定类的元素作为目标?

Javascript 在处理事件时,如何将具有特定类的元素作为目标?,javascript,jquery,Javascript,Jquery,JQuery新手,仍在学习 下面的脚本在单击图像时交换div的类。如何隔离图像,以便只有类为.缩略图的图像才会触发脚本 $document.readyfunction{ $img.clickfunction{ var newclass=$this.attrclass; var oldclass=$fullsize.attr'class'; $fullsize.removeClassoldclass.addClassnewclass; } }; 你可以像 <script> $(

JQuery新手,仍在学习

下面的脚本在单击图像时交换div的类。如何隔离图像,以便只有类为.缩略图的图像才会触发脚本

你可以像

<script>
 $(document).ready(function() {       
   $("img.thumbnail").click(function(e) {           
     var newclass = $(this).attr("id");               
     var oldclass = $("#fullsize").attr('class');  
     $("#fullsize").removeClass(oldclass).addClass(newclass);  
   });                  
});
</script>
可以帮助您理解jQuery中的不同选择器。$'img'将选择文档中的所有img

$'img.thumboil'将选择文档中具有缩略图类的所有img

只需替换class属性,即可组合removeClass addClass操作

$('img.thumbnail').click(function(e) {
    var newclass = $(this).attr('id');
    var oldclass = $('#fullsize').attr('class');
    $('#fullsize').attr('class',newClass); // Note: No need to removeClass and then addClass. Simply Replace the value of class attribute.
});

我们是否还需要这一行var oldclass=$'fullsize'.attr'class';我不确定。从外观上看,我们可能不需要它,因为它被声明为一个var。但是,如果我们想将更改恢复到原始状态,该怎么办?在这种情况下,我们可能需要保留旧的值。我明白,在这个代码中,这是不可能的。这可以通过将var oldclass声明移到外部来实现。如果有一个带有class.thumbnail的div,它将触发事件OP want img only。这将找到带有class.thumbnailimg.thumbnail的img的子元素。thumbnailimg.thumbnail将为您提供img标记内具有class thumbnail的所有元素。正确的方法是img.thmbnail img标记也有类缩略图。请注意,img和.缩略图之间没有空格。:$'单击函数{$'fullsize.attr'class',$this.attr'id';};所以“点击”这件事已经过时了,更不用说没有一个答案可以解决。不是说答案是错误的,只是建议采用更现代的方法。$'body''on'click','img.缩略图',function{$'fullsize.attr'class',$this.attr'id';};
$('img.thumbnail').click(function(e) {
    var newclass = $(this).attr('id');
    var oldclass = $('#fullsize').attr('class');
    $('#fullsize').attr('class',newClass); // Note: No need to removeClass and then addClass. Simply Replace the value of class attribute.
});