我正在尝试使用font-awesome图标作为搜索输入字段中的占位符。
我使用相应的html实体作为占位符,然后使用伪类来设置具有正确font-family的占位符(jsfiddle中的示例2):
HTML:
<div class="wrapper">
<input class="icon" type="text" placeholder="" />
</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", "");
});
它不会将font-family应用于输入占位符,而只是显示实体文本。
我试图混合各种东西,最后放弃。请帮忙!
P.S .:
将:before
与字体content
添加到css中的输入包装器的路由对我的特定情况不起作用。
答案 0 :(得分:5)
您应该先解析哈希值。您可以使用$.parseHTML
:
$('.wrapper input:first').attr("placeholder",$.parseHTML("")[0].data);
答案 1 :(得分:1)
您可以尝试这样的事情:
$('.wrapper input:first').attr("placeholder", $('<textarea />').html("").html());
这可以通过将值作为HTML而不是文本传递来实现,这可以通过创建对不存在的元素的引用来实现。