1

这是我的html:

<div class="menu">
  <span aria-hidden="true" class="btn" data-icon="&#128275;"></span>
</div>

当我点击 span 标签时,我希望 data-icon 会改变:data-icon="&#128275;

$icon = $(event.currentTarget)
if $icon.attr('data-icon') == '&#128275;'
      $icon.attr('data-icon', "&#128274;")
    else
      $icon.attr('data-icon', "&#128275;")

但是,虽然“数据图标”更改正确,但屏幕显示的是字符串&#128275;而不是图标。

4

3 回答 3

2

这是解决方案:

$.parseHTML("&#128274;")[0].data

所以,完整的代码:

$icon = $(event.currentTarget)
if $icon.attr('data-icon') == $.parseHTML("&#128274;")[0].data
      $icon.attr('data-icon', $.parseHTML("&#128275;")[0].data)
    else
      $icon.attr('data-icon', $.parseHTML("&#128274;")[0].data)
于 2013-06-03T15:21:28.073 回答
0

通过 Deepu 改进答案,检查这个

$('body').on('click', '#yourspan', function(){
  if($(this).attr('data-icon')=='&#128275;'){
    $(this).attr('data-icon','&#128274;');
  }
  else{
    $(this).attr('data-icon','&#128275;');
  }
});
于 2013-06-03T12:54:55.493 回答
0
<div class="menu">
  <span aria-hidden="true" class="btn" data-icon="&#128275;" id="yourspan"></span>
</div>

使用跨度的 id

$("#yourspan").on('click',function(){
  if($("#yourspan").attr('data-icon')=='&#128275;'){
    $("#yourspan").attr('data-icon','&#128274;');
  }
  else{
    $("#yourspan").attr('data-icon','&#128275;')
  }
});
于 2013-06-03T12:33:40.350 回答