通过字长运行脚本,而不是通过字符计数

时间:2015-09-28 09:15:22

标签: javascript jquery

我只找到了计算内容字符的方法,但我需要的是字长。例如,在 20个字符的单词时,css会执行某些操作,但如果20个字符超过一个字则不会...

这就是我尝试的,但它会计算角色;(

var s = $(".text").html();

if (s.split(' ').length > 20) {
   $(".text").css({
      'background-color' : '#F00',
      'font-weight' : 'bold'
   });
}

jquery可以吗?

3 个答案:

答案 0 :(得分:1)

您获得单个单词的长度,但将CSS规则应用于整个文本。您需要按文字分隔文本,并将样式应用于其中一些。

var container = $("#myText");

var words = container.text().split(' ');
container.empty();

for (var i = 0; i < words.length; i++)
{
    if (words[i].length > 20)
    {
        $("<span/>").text(words[i] + " ").addClass('longword').appendTo(container);
    } else {
        container.html(container.html() + words[i] + " ");
    }
}
.longword {
    font-weight: bold;
    background-color: #FF0000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="myText">
  Here is the simple text which contains some very long words like pseudopseudohypoparathyroidism or antidisestablishmentarianism.
</div>

生成的HTML如下所示:

Here is the simple text which contains some very long words 
like <span class="longword">pseudopseudohypoparathyroidism</span> or 
<span class="longword">antidisestablishmentarianism</span>.

答案 1 :(得分:0)

你基本上是在计算现在的话。为了检查是否有超过20个字符的单词,您必须执行以下操作:

s.split(' ').some(function(a) {return a.length > 20})

The definition of some can be found here.

答案 2 :(得分:0)

s.split(" ") will return you an array of strings.

只需更改行

if(str.split(&#39;&#39;)。length&gt; 20)

if(str.split(&#39;&#39;)[0] .length&gt; 20)