Javascript 计算锚定中的字符数并调整其大小

Javascript 计算锚定中的字符数并调整其大小,javascript,jquery,Javascript,Jquery,我试图构建一个脚本,计算列表项中锚定标记中的字符数,如果字符数大于18,则使锚定标记变窄,以便文本中断。这是我到目前为止得到的,但它不起作用。帮忙 $('nav li a').each(function() { var curr = this.text().length(); if(curr >= 18){ this.width(50); } }); 哦

我试图构建一个脚本,计算列表项中锚定标记中的字符数,如果字符数大于18,则使锚定标记变窄,以便文本中断。这是我到目前为止得到的,但它不起作用。帮忙

        $('nav li a').each(function() {
            var curr = this.text().length();
            if(curr >= 18){
                this.width(50);
            }
        });
哦,还有额外的积分:有没有办法在锚点收缩后使第二行的文本缩进?

试试这个:

    $('nav li a').each(function() {
        var curr = $(this).text().length;
        if(curr >= 18){
            $(this).width(50);
        }
    });
请尝试以下方法:

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

只是黑暗中的一个镜头:

您可能没有将锚点的显示设置为
block
inline block


或者,您有一个特别长的单词,除非您添加一些
s,否则它不会自动断开。怪癖模式只不过是在黑暗中拍摄:

您可能没有将锚点的显示设置为
block
inline block


或者,您有一个特别长的单词,除非您添加一些
s,否则它不会自动断开。Quirksmode具有

我注意到您的导航选择器中缺少一个字符-或一个字符。或者#

关于缩进第二行的第二点,请尝试以下操作:

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

我注意到您的导航选择器中缺少一个字符-或者是一个。或者#

关于缩进第二行的第二点,请尝试以下操作:

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

你这里有一些小毛病

  • 比赛结束后你必须做所有的事情 页面加载,比如 $(文档)。准备就绪(…)将是 必要的
  • 每个函数的值都不相同 像你拥有的那样工作,这需要时间 然后可以使用两个参数 有
  • 最后,锚定标记是 内联标记,因此它没有宽度。 为了你想要的工作你需要的 将a标记的样式设置为
    显示:块
    显示:
    内联块
    ,或仅使用不同的 容器
因此,这将直接用于列表项中的文本,例如:

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

你这里有一些小毛病

  • 比赛结束后你必须做所有的事情 页面加载,比如 $(文档)。准备就绪(…)将是 必要的
  • 每个函数的值都不相同 像你拥有的那样工作,这需要时间 然后可以使用两个参数 有
  • 最后,锚定标记是 内联标记,因此它没有宽度。 为了你想要的工作你需要的 将a标记的样式设置为
    显示:块
    显示:
    内联块
    ,或仅使用不同的 容器
因此,这将直接用于列表项中的文本,例如:

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


$(此).宽度(50);//这也需要包装纸=)直到你的帖子发布之前,我还没有注意到长度后面的佩伦人。@Headshota做到了!加上@zzbov在下面的评论:)@欢迎光临。现在我看到你还没有接受你的问题的大部分答案,如果你接受你已经问过的问题的答案,人们更有可能在未来的问题上帮助你。很遗憾,我的大多数问题都没有得到成功的答案。直到我自己找到答案,我才开始努力工作。不过,如果我得到了正确的答案,我很乐意接受它们。$(这个)。宽度(50);//这也需要包装纸=)直到你的帖子发布之前,我还没有注意到长度后面的佩伦人。@Headshota做到了!加上@zzbov在下面的评论:)@欢迎光临。现在我看到你还没有接受你的问题的大部分答案,如果你接受你已经问过的问题的答案,人们更有可能在未来的问题上帮助你。很遗憾,我的大多数问题都没有得到成功的答案。直到我自己找到答案,我才开始努力工作。如果我得到了正确的答案,我很乐意接受。是的,忘了在css中设置display:block。多伊!哦,我以前从没听说过
。我不能在这种情况下使用它,因为有问题的链接是由我的CMS动态生成的,但我会在将来记住它。谢谢是的,忘记在css中设置display:block了。多伊!哦,我以前从没听说过
。我不能在这种情况下使用它,因为有问题的链接是由我的CMS动态生成的,但我会在将来记住它。谢谢OP没有遗漏任何东西。nav是一个html标记:事实就是如此。还没有太多机会玩HTML5。每天都是上学的日子:)是的,第二条线的提示很有效!非常感谢。:)至于HTML5,我喜欢它。它使我不必创建一个jillion ID/类。OP没有遗漏任何东西。nav是一个html标记:事实就是如此。还没有太多机会玩HTML5。每天都是上学的日子:)是的,第二条线的提示很有效!非常感谢。:)至于HTML5,我喜欢它。它使我不必创建jillion ID/类。它被包装在一个doc ready标记中,我只是在发布的示例中排除了它。整个事情现在都在进行中。谢谢不,谢谢。我学习了每个函数的备用语法。所以我猜我错了。它被包装在一个doc-ready标签中,我只是在发布的示例中排除了它。整个事情现在都在进行中。谢谢不,谢谢。我学习了每个函数的备用语法。所以我猜我错了。