文本长度返回错误的长度

时间:2015-02-09 03:43:19

标签: javascript jquery html html5 javascript-events

我正在自动调整文本字体大小,它工作正常,但我也想计算文本长度。但我的错误长度。这是Fiddler代码。有人可以告诉我这里我做错了吗?

var len=$(targetid).text().length;

    alert(len);

我正在使用text().length方法,但我的错误值。

$('.jtextfill').textfill({ maxFontPixels: 36 },'h1');
$('.jtextfill2').textfill({ maxFontPixels: 36 },'h2');
$('.jtextfill3').textfill({ maxFontPixels: 36 },'h3');

4 个答案:

答案 0 :(得分:0)

由于空文本节点创建的前导和尾随空格,您可以修剪文本以删除它们

var len=$(targetid).text().trim().length;

演示:Fiddle

答案 1 :(得分:0)

我认为你遇到的问题是它也在计算空间,你应该在读取长度之前修剪文本。

$($(targetid).text()).trim().length

答案 2 :(得分:0)

这是因为.text()包含围绕span元素的.jtextfill元素的空白。

选项1 - 删除空白(JSFiddle):

<h1 id="h1" class='jtextfill'><span>Sample1</span></h1>
<h2 id="h2" class='jtextfill2'><span>Sample2</span></h2>
<h3 id="h3" class='jtextfill3'><span>Sample3</span></h3>

选项2 - $.trim空白(JSFiddle):

var len = $.trim($(targetid).text()).length; 

现代浏览器替代方案:

var len = $(targetid).text().trim().length;

答案 3 :(得分:0)

text()方法返回h1,h2和h3标记内的文本,以及它们周围的空格和换行符。

在测试长度之前,您需要确保修剪():

var len=$(targetid).text().trim().length;