Javascript 截断ul li定位标记中的文本
这是我的htmlJavascript 截断ul li定位标记中的文本,javascript,jquery,html,Javascript,Jquery,Html,这是我的html <ul class="test"> <li><a href="#">python</a></li> <li><a href="#">Truncate should apply here </a></li> <li><a href="#">c</a></li> <li><a h
<ul class="test">
<li><a href="#">python</a></li>
<li><a href="#">Truncate should apply here </a></li>
<li><a href="#">c</a></li>
<li><a href="#">cpp</a></li>
<li><a href="#">java</a></li>
<li><a href="#">.net</a></li>
<li><a href="#">This is really a long text in this ul </a></li>
<li><a href="#">This is another really a long text in this ul </a></li>
</ul>
如何使用Jquery实现这一点?您可以这样做:
$('ul.test li a').each(function() {
var text = $(this).text();
if(text.length > 6) {
$(this).text(text.substring(0, 4) + '..')
}
});
如果要使用纯CSS,则可以使用
文本溢出:省略号属性:
ul.test li a {
width: 45px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
但是,在使用这种方法放置省略号之前,无法控制有限字符的数量
您可以使用普通的JS解决方案并节省一些资源(而且它也很短):
var As=document.getElementsByTagName(“a”);//所有“a”元素
对于(vari=0,len=As.length;i
或者,如果您不想剪切文本并永远丢失它,您可以在CSS中使用该属性。试试下面的CSS
a {
width: 50px;
display: block;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
您可以使用以下内容作为开始,并将其与一些if..else语句结合起来,以获得所需的输出
$(".test li a").each(function(index){
$(this).text($(this).text().substring(0,4)+"...")
})
使用CSS的另一种方法可以在这个JSFIDLE演示中找到:这就可以了。
$(document).ready(function () {
$("button").click(function () {
for (i = 0; i < $("a").length; i++)
{
if ($("a")[i].text.length > 6)
{
$("a")[i].text = $("a")[i].text.substring(0,4)+"..";
}
}
});
});
$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
对于(i=0;i<$(“a”)。长度;i++)
{
如果($(“a”)[i].text.length>6)
{
$(“a”)[i].text=$(“a”)[i].text.substring(0,4)+.”;
}
}
});
});
这可以通过css来实现,方法是指定宽度并应用溢出,这将改变文本的值。Felix认为,这个约束不是问题的一部分。不值得投反对票。OP询问如何使用jQuery执行此操作的事实暗示了其他情况。使用CSS执行此操作的另一种方法可以在这个JSFIDLE演示中找到:
$(".test li a").each(function(index){
$(this).text($(this).text().substring(0,4)+"...")
})
$(document).ready(function () {
$("button").click(function () {
for (i = 0; i < $("a").length; i++)
{
if ($("a")[i].text.length > 6)
{
$("a")[i].text = $("a")[i].text.substring(0,4)+"..";
}
}
});
});