jQuery 属性选择器变量

IT技术 javascript jquery
2021-02-23 19:37:52

我有一个带有多个选项的选择框 - 这些选项值中的每一个都对应于下面某些图像上的“值”属性。我想要的功能是使用红色边框突出显示相应值的选择框值。这是代码:

function assignValue() {
  selectboxvalue = $('#Box_style').val() ;
  $('.tabContent img[value="+selectboxvalue+"]').css({border: '1px solid #c10000'});
}

$('#Box_style').change(assignValue);

环顾 jquery 文档(http://api.jquery.com/attribute-equals-selector),显然这应该有效......

任何帮助将不胜感激,谢谢!

3个回答

jQuery 1.7 之前的版本

以下将起作用:

$('.tabContent img[value='+selectboxvalue+']').css({border: '1px solid #c10000'});

jQuery 1.7 及更高版本

在 1.7 中,jQuery 更改了语法以要求attributes在值周围加上引号:

$('.tabContent img[value="'+selectboxvalue+'"]').css({border: '1px solid #c10000'});

报价乱了:

  $('.tabContent img[value="'+selectboxvalue+'"]').css({border: '1px solid #c10000'});

如上所述,它不再像上面提到的那样工作(尽管它也可能只是我的代码)。单引号弄乱了代码。以下代码有效

从 jQuery 3.2.1 及更高版本开始

$("#clickmap a[gruppe="+gruppeId+"]").children("path").addClass('lastClicked');