Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 截断ul li定位标记中的文本_Javascript_Jquery_Html - Fatal编程技术网

Javascript 截断ul li定位标记中的文本

Javascript 截断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

这是我的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 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)+"..";
                }
            }
        });
    });