Javascript 选择唯一的项目并将其标记为js

Javascript 选择唯一的项目并将其标记为js,javascript,html,jquery,class,Javascript,Html,Jquery,Class,我有多个图像和编号,它们通过类名相互匹配,每个编号都有其对应的图像,因此我有多个对,当我选择一个图像或编号时,它们都需要具有相同的css类 $('p[class^="pieza"], div[class^="pieza"]').on('click', function(e) { // remove class to all elements $('p[class^="pieza"], div[class^=&quo

我有多个图像和编号,它们通过类名相互匹配,每个编号都有其对应的图像,因此我有多个对,当我选择一个图像或编号时,它们都需要具有相同的css类

   $('p[class^="pieza"], div[class^="pieza"]').on('click', function(e) {
    // remove class to all elements
    $('p[class^="pieza"], div[class^="pieza"]').removeClass('shadow');
    
    // add class to all elements having current class....
     $('.' + e.target.classList.toString().addClass('shadow');
如果我点击数字,代码运行良好,数字和图像被选中,并且具有相同的css类

   $('p[class^="pieza"], div[class^="pieza"]').on('click', function(e) {
    // remove class to all elements
    $('p[class^="pieza"], div[class^="pieza"]').removeClass('shadow');
    
    // add class to all elements having current class....
     $('.' + e.target.classList.toString().addClass('shadow');

但是当我点击任何一张图片时,他们都得到了这个类,而它的数字匹配不到

寻找独特元素不值得太多

您可以直接使用当前单击的元素类:

$('p[class^=“pieza”]、div[class^=“pieza”])。非('has(img)')。在('click',函数(e){
//删除所有元素的类
$('p[class^=“pieza”],div[class^=“pieza”]”)。非('has(img)')。移除类('redColor');
//将类添加到具有当前类的所有元素。。。。
$('.+e.target.classList.toString()).not(':has(img)).addClass('redColor');
})
.redColor{
背景色:红色;;
}

18

17

16

15


这是:$(唯一的)。addClas('selected')应该是:$(唯一的)。addClass('selected')?请添加没有语法错误的代码,没有人可以这样帮助您。addClas应该是addClass,而且您的代码将在items.filter()附近抛出errror,因为filter需要一个函数作为第一个参数是的,它是类,很抱歉我使用了这个过滤器learning@LuzBritez我很抱歉。您添加了图像。从图像上我无法理解。我需要相关的HTML片段和js。。。。。。谢谢我的工作,但只有当我选择了号码,当我点击图像时,所有的图像都会得到class@LuzBritez现在没有图像获得类每个图像都有其相应的编号,由类关联,因此当我单击其中一个时,两者都必须有阴影,当我点击另一个图片或数字时,前一个组合必须停止使用css类,并重复我首先解释的内容,什么也不做else@LuzBritez这就是代码片段的工作原理。现在我改变了,但是。。。。。我不明白。请创建一个片段/小提琴。。。。。。