JQuery 节点检查是否不为空
JQuery Node check if not empty
我的html标记可能如下所示:
<h2></h2> <!-- empty -->
<h2>text</h2> <!-- not empty -->
<h2><p>text</p><h2> <!-- not empty -->
<h2><p></p>/<h2> <!-- empty -->
<h2><p><span></span></p></h2> <!-- empty -->
有没有办法检查h2
元素本身或具有 n 个子节点的h2
元素是否包含任何 html 内容。
到目前为止我已经尝试过
if ( $('h2').html() !== '' ) ...
if ( $('h2 *').html() !== '' ) ...
if ( $('h2').html().length ) ...
编辑:只是为了澄清,我希望这段代码适用于每个h2。h2 节点中的子节点/嵌套子节点的数量未知。
:empty
呢?
if ($('h2').is(':empty')) {...}
只需检查您想要的元素是否有子元素,并检查是否有任何文本值。
$('h2').children().length === 0 && !$('h2').text();
使用 jQuery 的 .text()
而不是 .html()
:
if ( $('h2').text().length )
您甚至可以使用:
if ($("h2").html().trim().length == 0) {...}
这也适用于文本节点!
$(document).ready(function(){
$("h2").each(function(){
if ($(this).html().trim().length == 0)
$("#result").append("Empty<br />");
else
if ($(this).text().trim().length == 0)
$("#result").append("Empty<br />");
else
$("#result").append("Not Empty<br />");
});
});
* {font-family: 'Segoe UI', sans-serif;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<h2></h2> <!-- empty -->
<h2>text</h2> <!-- not empty -->
<h2><p>text</p></h2> <!-- not empty -->
<h2><p></p></h2> <!-- empty -->
<h2><p><span></span></p></h2> <!-- empty -->
<div id="result"></div>
相关文章:
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- 检查在使用节点运行程序时是否给出ARGV
- 是否排除节点中错误堆栈的第一行?/节点中的自定义错误类型
- 如何检查DOM节点是否继承自构造函数
- 在源节点上调用 stop() 是否会触发已结束的事件
- 在节点中使用“返回{值}”是否合适
- 是否可以在 Polymer 中的
节点上使用自定义属性以获得漂亮的 API - HTML 中是否存在属性节点
- 如何确定父节点是否有子节点
- 是否有一种基于“查询”来查询Neo4j中的节点的方法;dateProperty”;
- 是否有一种方法可以在节点中同步执行多个JavaScript文件
- 节点光纤是否阻塞
- 如何判断文本输入字段dom节点是否*没有*带有javascript的选择
- 是否有任何功能可以合并两个JSON数据集并替换旧信息?(节点.JS)
- jquery复选框树是否支持“;展开直到节点“;或“;扩展父母”;当程序地调用“;检查”;
- 是否可以在节点v0.12.0中使用生成器
- Kendo TreeView:检查节点是否有兄弟姐妹或子节点
- 是否有离线词库?它应该可以通过节点应用程序进行搜索
- 如何判断我的 Firebase 节点是否被使用
- 为什么我无法检查对象节点是否未定义