2011-05-25 113 views
12

我有一个选择框有几个选项 - 这些选项值中的每一个对应于下面某些图像上的“值”属性。我想要的功能是当选择框值改变时,img与相应的值用红色边框突出显示。下面是代码:jQuery属性选择器变量

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),显然这应该工作放眼望去...

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

+0

我认为你的问题很简单,你混了'''和'“'。 – SOFe 2017-07-09 07:05:53

回答

35

此前的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'}); 
+0

感谢的人,认识到! – kinsey 2011-05-25 21:29:26

+0

精神+1:我没有投票权。 – 2011-05-25 21:31:44

7

报价搞砸:

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

上述情况,它不再起作用如上所述(,虽然它也可能只是我的代码)。单引号混淆了代码。下面的代码工作

在jQuery 3.2.1以后

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