计算锚点中的字符并调整其大小

时间:2011-04-07 19:33:56

标签: javascript jquery

我正在尝试构建一个脚本来计算列表项内锚标记中的字符数,如果字符数大于18,则会使锚标记变窄,从而使文本中断。这是我到目前为止所做的,但它不起作用。帮助

        $('nav li a').each(function() {
            var curr = this.text().length();
            if(curr >= 18){
                this.width(50);
            }
        });

哦,还有奖励积分:在锚缩小后,有没有办法让第二行的文字缩进?

4 个答案:

答案 0 :(得分:3)

试试这个:

    $('nav li a').each(function() {
        var curr = $(this).text().length;
        if(curr >= 18){
            $(this).width(50);
        }
    });

答案 1 :(得分:0)

在黑暗中拍摄:

您可能没有将主播的显示设置为blockinline-block

或者,你有一个特别长的单词,除非你添加一些<wbr>,否则它不会自动中断。 Quirksmode有a nice page about wordbreaks

答案 2 :(得分:0)

我注意到你错过了 nav 选择器中的角色 - 要么是a。或者#

关于缩进第二行的第二点,试试这个:

#nav li a {
    display: block;
    margin-left: 15px;
    text-indent: -15px;    
}

答案 3 :(得分:0)

你这里有一些小故障。

  • 你必须做完所有事情 页面加载,所以像 $(document).ready(...)将是 必要的。
  • 每个功能都没有 工作很像你拥有它,它需要 然后可以使用两个参数 用。
  • 最后,锚标签是 内联标记,因此没有宽度。 为了你想要的工作,你需要 要么用你的标签设置样式 display: blockdisplay: inline-block,或者只是使用其他内容 容器

因此,这可以直接在列表项中使用文本,例如:

$(document).ready(function(){
    $('li').each(function(index, listItem) {
        var curr = $(listItem).text().length;
        if(curr >= 18){
            $(listItem).width(50);
        }
    });
});