我正在尝试编写一个纯 javascript 函数,该函数将从页面中获取一个元素(通常是 <div>),然后从那里计算出它是否具有任何特定的子元素。本质上是任何表示文本内容的标签,so:<p>
或任何标题标签 so ( <h1>
.. <h6>
) 或列表等。
我不想操纵这些元素只是检查它们的存在。
所以函数将采用以下形式
/**
* Takes an element and returns whether
* the element contains content
* @return boolean (true/false)
*/
var isContent = function (elementToCheck) {
};
我目前正在使用document.getElementsByTagName('div')
获取<div>
页面的所有元素。然后,我将一次将它们解析为函数。
我目前已经把它搞定了
var isContent = function (elementToCheck) {
if (elementToCheck.hasChildNodes()) {
var children = elementToCheck.childNodes;
for (var i = 0; i < children.length; i++) {
// handle children[i]
}
}
}
我一直在尝试使用chilren[i].nodeValue
和测试各种事物的相等性,但我无法让它们中的任何一个通过。
进行此操作的最佳方法是什么?我认为它正在变成一个混乱的功能,因为我必须将所有元素放在此之外,循环它们并在此处解析它们,然后执行另一个循环。我开始怀疑是否可以使用正则表达式来做到这一点?