使用 jquery 添加类后,字体真棒图标字体作为输入中的占位符

Posted

技术标签:

【中文标题】使用 jquery 添加类后,字体真棒图标字体作为输入中的占位符【英文标题】:Font awesome icon font as a placeholder in input after adding class with jquery 【发布时间】:2016-04-22 22:12:22 【问题描述】:

我正在尝试在搜索输入字段中使用字体真棒图标作为占位符。

Jsfiddle examples

我使用相应的 html 实体作为占位符,然后使用伪类来设置具有正确字体系列的占位符(jsfiddle 中的示例 2):

HTML:

<div class="wrapper">
    <input class="icon" type="text" placeholder="&#61442;" />
</div>

CSS:

.wrapper 
    font-family:'arial', sans-serif;

input.icon 
    padding:5px;

input.icon::-webkit-input-placeholder 
    font-family:'FontAwesome';

input.icon::-moz-placeholder 
    font-family:'FontAwesome';

input.icon::-ms-input-placeholder 
    font-family:'FontAwesome';

它按预期工作。

当我尝试通过 jquery 添加输入类和占位符时问题就开始了(jsfiddle 中的示例 1):

JS:

$(document).ready(function() 
$('.wrapper input:first').addClass('icon');
$('.wrapper input:first').attr("placeholder", "&#61442;");
);

它不会将 font-family 应用于输入占位符,而是显示实体文本。

我试着混在一起,最后放弃了。请帮忙!

Jsfiddle examples

附: 在 css 中添加 :before 和字体 content 到输入包装器的溃败不适用于我的特殊情况。

【问题讨论】:

@PhiterFernandes 之前尝试过,然后又尝试了一次 - 它对我不起作用。万一我做错了,如果您可以通过正确更改顺序来更新 jsfiddle 以解决问题,我将不胜感激! 【参考方案1】:

您应该首先解析哈希。你可以使用$.parseHTML:

$('.wrapper input:first').attr("placeholder", $.parseHTML("&#61442;")[0].data);

【讨论】:

【参考方案2】:

你可以试试这样的:

$('.wrapper input:first').attr("placeholder", $('<textarea />').html("&#61442;").html());

JSFiddle

这是通过将值作为 HTML 而不是文本传递来实现的,这可以通过创建对实际上并不存在的元素的引用来实现。

【讨论】:

以上是关于使用 jquery 添加类后,字体真棒图标字体作为输入中的占位符的主要内容,如果未能解决你的问题,请参考以下文章

如何将新的SVG图标添加到字体真棒[重复]

为标签页标签使用字体真棒图标

如何在选择选项中添加字体真棒图标?

将字体真棒图标添加到完整的日历标题

单击然后检查时如何设置字体真棒检查图标[关闭]

构建字体真棒图标