返回错误长度的文本长度
Text length returning wrong length
我正在自动调整文本字体大小,效果很好,但我还想计算文本长度。但我的长度不对。这是 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');
这是因为空文本节点创建的前导和尾随空格,您可以trim文本将其删除
var len=$(targetid).text().trim().length;
演示:Fiddle
我认为你的问题是它也在计算空格,你应该 trim 阅读长度之前的文本。
$($(targetid).text()).trim().length
这是因为 .text()
包含 .jtextfill
元素的子元素 span
周围的空白。
选项 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;
text() 方法返回 h1、h2 和 h3 标签内的文本,以及它们周围的空格和换行符。
您需要确保在测试长度之前 trim():
var len=$(targetid).text().trim().length;
我正在自动调整文本字体大小,效果很好,但我还想计算文本长度。但我的长度不对。这是 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');
这是因为空文本节点创建的前导和尾随空格,您可以trim文本将其删除
var len=$(targetid).text().trim().length;
演示:Fiddle
我认为你的问题是它也在计算空格,你应该 trim 阅读长度之前的文本。
$($(targetid).text()).trim().length
这是因为 .text()
包含 .jtextfill
元素的子元素 span
周围的空白。
选项 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;
text() 方法返回 h1、h2 和 h3 标签内的文本,以及它们周围的空格和换行符。
您需要确保在测试长度之前 trim():
var len=$(targetid).text().trim().length;