为什么p标签的内容什么都没有,但它的长度是1
Why the content of p tag is nothing but it has a length is 1?
我有一段HTML代码,如下所示
<div id="test">
<img width="570" title="20160201121020_208.png" src="/201602/01/20160201121020_208.png" hasele="">
<p>​ </p>
<p>
</p>
</div>
我的 JavaScript 代码如下
$("#test").children().each(function(idx, p){
node = $(p);
if(node.is("div") || node.is("p")){
var txt = $.trim(node.text());
if(txt != ""){
console.log("========="+ txt + ":" + txt.length);
}
}
});
控制台.log的结果是"=========1",这让我感到困惑。因为我认为控制台.log应该没有结果。
您有两个p
元素:
-
一个包含零宽度空格字符和不间断("硬")空格字符
-
另一个包含各种空格和/或换行符
$.trim
将修剪后者,但只会从第一个中删除硬空间(而不是零宽度空间)。如果要删除该零宽度空间,则必须专门执行此操作。(JavaScript 自己的String#trim
[spec |MDN]也将留下零宽度空间。
var txt = node.text().replace(/['s'u200B]/g, '');
'u200B
是该​
HTML 字符实体的 Unicode 转义。
现场示例:
$("#test").children().each(function(idx, p){
node = $(p);
if(node.is("div") || node.is("p")){
var txt = node.text().replace(/['s'u200B]/g, '');
if(txt != ""){
console.log("========="+ txt + ":" + txt.length);
} else {
console.log("It's blank");
}
}
});
<div id="test">
<img width="570" title="20160201121020_208.png" src="/201602/01/20160201121020_208.png" hasele="">
<p>​ </p>
<p>
</p>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
相关文章:
- 在jquery中,从同一对象的属性设置输入字段和标签的正确方法是什么
- @internal react 代码中的 JavaScript 文档标签,是 jsdoc、闭包还是其他什么
- 无论我做什么,IE或EDGE都会忽略基本标签.如何绕过它
- 在谷歌浏览器中,标签之间最快的通信是什么
- 刮取描述标签最简单的方法是什么
- 标签在创建数据通道中的作用是什么以及如何正确使用它
标签和新的Image().src有什么区别
- 以 MVVM 方式处理 html5 视频标签的正确方法是什么?
- 为什么p标签的内容什么都没有,但它的长度是1
- 更改背景图像标签..什么也没发生
- 什么意思是“服务器标签格式不正确”,这个按钮会发生什么
- 在 document.write 中用于具有属性的标签的正确语法是什么
- 什么是广告回传标签和常见实现
- DIV标签和HTML5元素之间应该使用什么以及有什么区别(部分,文章)
- 什么'当我添加更多<脚本>标签
- osmtogeojson中不感兴趣的标签的预期输入是什么
- 什么's在我的脚本标签之间有Razor
- 什么's是使用哈希标签进行页面导航和锚点导航的最佳方式
- 当标签关闭时,HTML5 web工作线程会发生什么's正在跑步
- 当点击时,Facebook使用什么来加载新的哈希标签