我有这种情况。
在标题<h2></h2>
中,我想在文本之前添加fontawesome图标。
防爆。
<h2 id="test"><i class="fa fa-cog"></i> THIS IS TITLE</h2>
我将为所有标题添加手动图标,但如果任何标题保持为空(没有图标),则脚本添加默认图标
<i class="fa fa-angle-double-left"></i>
我已尝试使用此脚本,但它无效。
$("#test(:empty)").append('<h2><i class="fa fa-angle-double-left"></i></h2>');
有任何解决此问题的建议吗?
编辑 我需要侧边栏中的所有块。块的结构是:
<div class="sidebar">
<h2><i class="fa fa-users"></i><a href="#"> Title 1</a></h2>
<ul>
<li>
<div class="user"></div>
</li>
</ul>
</div>
和2-nt侧栏相同的班级不同的标题
<div class="sidebar">
<h2><i class="fa fa-users"></i><a href="#"> Title 2</a></h2>
<ul>
<li>
<div class="user"></div>
</li>
</ul>
</div>
第3块没有图标
<div class="sidebar">
<h2>HERE ADDD DEFAULT ICON <a href="#"> Title 1</a></h2>
<ul>
<li>
<div class="user"></div>
</li>
</ul>
</div>
我希望现在很清楚
答案 0 :(得分:1)
您要向h2
追加h2
。更好的是,将你的html设置为:
$("#test(:empty)").html('<i class="fa fa-angle-double-left"></i>');
此外,您不应该为多个元素提供相同的id
。为此,您应该使用类并调用如下:
$(".test(:empty)").html('<i class="fa fa-angle-double-left"></i> My default title!');
答案 1 :(得分:1)
标题<h2></h2>
中的我想在文本
之前添加fontawesome图标
$("h2(:empty)").html(function(){
return "<i class="fa fa-angle-double-left"></i>"+this.innerText;
});
注意$('#test(:empty)')
会搜索#test
的第一个元素,我猜你已经有一个h2
非空。
您 should not 的元素具有相同的ID,在文档中必须是唯一的。使用data-*
属性 - data-id
<h2 data-id="test">....
$("h2[data-id='test'](:empty)")
或上课
<h2 class="test">....
$("h2.test(:empty)")
答案 2 :(得分:1)
您可以使用Pseudo-Classes来完成CSS。
.sidebar h2:empty:before {font-family: 'FontAwesome';content: '\f100';}
.sidebar h2:before {font-family: 'FontAwesome';content: '\f0c0';}
<div class="sidebar">
<h2>User Name</h2>
</div>