Javascript JQuery-按数据属性=变量查找元素
使用自定义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
<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:完全正确。两年后,我真的应该开始把它们混在一起。。。