Javascript JQuery-按数据属性=变量查找元素

Javascript JQuery-按数据属性=变量查找元素,javascript,jquery,custom-data-attribute,Javascript,Jquery,Custom Data Attribute,使用自定义JQuery数据属性检索显示这些图标的元素,我正在使用以下工作代码成功更改图标: <i class="glyphicon glyphicon-check" data-year="2014" data-flag_check="1"></i> ... <script> ... $('i[data-year="2014"]').removeClass('glyphicon-check').addClass('glyphicon-unchecke

使用自定义JQuery数据属性检索显示这些图标的元素,我正在使用以下工作代码成功更改图标:

<i class="glyphicon glyphicon-check" data-year="2014" data-flag_check="1"></i>
...
<script>
   ...
   $('i[data-year="2014"]').removeClass('glyphicon-check').addClass('glyphicon-unchecked');
问题: 是否可以使用变量执行此操作

可能的后续问题:
如果是这样,有人能检测出我的语法中有什么错误吗?

您只是缺少字符串连接:

var yearIn = "2014";
$('i[data-year=' + yearIn + ']').removeClass('glyphicon-check').addClass('glyphicon-unchecked');
// ------------^^^^^^^^^^^^^^
或者在ES2015+中,您可以将模板文字与替换标记一起使用:

  var yearIn = "2014";
  $(`i[data-year=${yearIn}]`).removeClass('glyphicon-check').addClass('glyphicon-unchecked');
//  ^------------^^^^^^^^^-^
FWIW,当选择器中的值来自变量时,我总是在其周围使用引号,以防万一该变量以空格等形式结束:

var yearIn = "2014";
$('i[data-year="' + yearIn + '"]').removeClass('glyphicon-check').addClass('glyphicon-unchecked');
// ------------^--------------^


您只是缺少字符串连接:

var yearIn = "2014";
$('i[data-year=' + yearIn + ']').removeClass('glyphicon-check').addClass('glyphicon-unchecked');
// ------------^^^^^^^^^^^^^^
或者在ES2015+中,您可以将模板文字与替换标记一起使用:

  var yearIn = "2014";
  $(`i[data-year=${yearIn}]`).removeClass('glyphicon-check').addClass('glyphicon-unchecked');
//  ^------------^^^^^^^^^-^
FWIW,当选择器中的值来自变量时,我总是在其周围使用引号,以防万一该变量以空格等形式结束:

var yearIn = "2014";
$('i[data-year="' + yearIn + '"]').removeClass('glyphicon-check').addClass('glyphicon-unchecked');
// ------------^--------------^


您使用的是字符串文字“yearIn”而不是变量yearIn,请执行以下操作来连接字符串:

$('i[data-year=' + yearIn + ']').removeClass('glyphicon-check').addClass('glyphicon-unchecked');

您使用的是字符串文字“yearIn”而不是变量yearIn,请执行以下操作来连接字符串:

$('i[data-year=' + yearIn + ']').removeClass('glyphicon-check').addClass('glyphicon-unchecked');

或者使用模板文本:@Vucko:Quite。我真的应该在两年后开始混合这些内容……或者使用模板文字:@Vucko:完全正确。两年后,我真的应该开始把它们混在一起。。。