我正在尝试通过
JavaScript向我的导航(动态更改)添加图标.
var icon = document.querySelector('#icon'); icon.setAttribute('data-icon','†');
#icon:after { content: attr(data-icon); }
<div id="icon" data-icon=""> Icon </div>
但它不起作用,为什么?尝试手动编辑数据图标属性时,会出现图标.否则只是图标的unicode.
解决方法
HTML实体在CSS中没有任何意义.如果您想要遵循该路径,则需要先解码它:
var icon = document.querySelector('#icon'); var tmp = document.createElement("span"); tmp.innerHTML = '†'; icon.setAttribute('data-icon',tmp.innerText);
#icon:after { content: attr(data-icon); }
<div id="icon" data-icon=""> Icon </div>
…或者,只需按原样键入字符(只要您的应用程序是用UTF-8编写的):
var icon = document.querySelector('#icon'); icon.setAttribute('data-icon','†');
#icon:after { content: attr(data-icon); }
<div id="icon" data-icon=""> Icon </div>
顺便说一句,我不知道在哪里†因为它似乎不是一个有效的实体参考(虽然它似乎无论如何都有效).我能找到的标准Unicode字符是U+2020 DAGGER,因此该实体将是†.我已经编辑了我的原始代码段来使用它.