使用 javascript 检查元素是否包含子标记而不是文本
Check if element contains child tag not text using javascript
示例 HTML:
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero.</p>
<p><img src="..." alt=""/></p>
<p><iframe width="" height="" src="...">....</iframe></p>
<p> Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam nec ante. Sed lacinia, urn</p>
如果可能的话,我怎样才能有效地获得那些包含标签而不是纯 javascript 的文本的 p 标签?
结果应为:
<p><img src="..." alt=""/></p>
<p><iframe width="" height="" src="...">....</iframe></p>
我已经这样接近它:
var ptags = document.querySelectorAll(".container p");
for(var i = 0; i<ptags.length; i++) {
if(ptags[i].querySelectorAll("img, iframe").length > 0) { .... }
}
假设您正在使用实际的 HTML 内容,您可以使用 document.querySelectorAll()
函数抓取所有段落,然后使用 filter()
函数过滤掉不包含任何子元素的段落:
// Grab an array of all of your <p> elements
var paragraphs = Array.prototype.slice.call(document.querySelectorAll('p'), 0);
// Filter out those paragraphs that do not contain any elements
paragraphs = paragraphs.filter(function(p){ return p.childElementCount > 0; });
根据您的编辑,您可以简单地检查循环中每个元素的 childElementCount
属性:
for(var i = 0; i < ptags.length; i++) {
// Check if this element has children
if(ptags[i].childElementCount > 0) {
// This has children, do something
}
}
相关文章:
- 使用Javascript使用数组检查文本框中的值
- 如何检查链接是否有文本,并根据文本值评估条件-Jquery/JS
- 必须检查长度,并在文本框中允许一些特殊字符
- 从id标记中的文本进行检查,并将类添加到另一个标记中
- 检查文本区域是否为空总是返回false
- 如何在angularjs中更改文本框类,同时键入和检查条件
- JavaScript检查某些文本中的许多关键字
- 选项设置文本值重复..有没有我可以检查的财产以避免重复
- HTML.如何检查用户是否在表单中输入了文本
- 检查所选文本是否在给定的CSS类中
- 对照数组脚本检查文本框中的值不起作用
- CKEditor-如何在事件中检查文本区域是否为空
- 如何检查浏览器中是否支持文本溢出:省略号
- 在文本区域检查电子邮件数据时出现奇怪的jquery错误
- 使用 javascript 检查文本框是否以 92 开头
- 检查选择器在jQuery中是否包含文本(即不是媒体)
- 使用 jQuery 检查文本可见性 .包含代码的行为不符合预期
- 使用 jQuery 检查文本框焦点
- 通过指定的文本检查项目列表 /w Jquery
- 在jquery中,我如何通过文本检查复选框