【发布时间】:2013-10-06 11:00:46
【问题描述】:
我认为这是一个小问题,但不知何故我被卡住了。
考虑下面的代码
HTML:
<div class="india">
<p class="hidden"> Uttar Pradesh </p>
<p> Andhra Pradesh </p>
<p class="hidden"> Uttar Pradesh </p>
<p> Andhra Pradesh </p>
</div>
CSS:
.hidden{
display: none;
}
JAVASCRIPT:
/* Case 1: No of char inside div when hidden elements are removed
RETURNS 53 */
$('div.india').find(":hidden").remove();
alert($('div.india').text().length);
现在我想在不移除隐藏元素的情况下返回相同的长度 (=53)。我尝试过执行以下操作(一个接一个/或在单独的类似 div 上),但它们都返回不同的长度
如何在不删除隐藏元素的情况下返回相同的长度?欢迎解释为什么它们的长度不同!
链接:http://jsfiddle.net/deveshz/R2QNM/1/
// Without Removing hidden div RETURNS 32
/*Case 2: */
alert($('div.india').find(":visible").text().length);
/* Case 3 */
var charlength = 0;
$('div.india').find(":visible").each(function(){
charlength += $(this).text().length;
});
alert(charlength);
/*Case 4 RETURNS 21*/
var clone = $('div.india').clone();
clone.find(":hidden").remove();
alert(clone.text().length);
【问题讨论】:
-
看起来第一个长度调用包括空格和可能的回车。 'alert($('div.india').find(":visible").text().length);'没有。尝试在长度警报之前提醒实际文本,您会看到差异
标签: javascript jquery html css clone