我有一个相当复杂的问题。
通常的标记(这里没有问题):
<div class="wrapper">
<div class="title"> bla bla... </div>
<div class="content"> ...content... </div>
</div>
“扭曲”标记:
<div class="wrapper">
...content... </div>
</div>
如您所见,
div.content
的开始标签缺失。不幸的是,我无法控制.wrapper中的输出:(所以,我的问题是:如何检测是否存在
div.title
,如果不存在-在<div class="content">
之后插入div.wrapper
(不是.title)?我知道如何使用jQuery,但是我需要一个纯JavaScript的解决方案,因为使用jQuery在固定版式之前会有一个小的“延迟”。有任何想法吗?
最佳答案
没有jQuery,还有很多代码。
var divs = document.getElementsByTagName('div'),
foundTitleDiv = false;
for (var i = 0, divsLength = divs.length; i < divsLength; i++) {
if (divs[i].className.match(/\btitle\b/)) {
foundTitleDiv = true;
break;
}
}
if (foundTitleDiv) {
var wrapper = document.createElement('div');
wrapper.className = 'content';
var div = divs[i];
wrapper.appendChild(div.cloneNode(true));
div.parentNode.replaceChild(wrapper, div);
}
It works!
将其放在脚本的底部,或者您可以等待整个窗口加载
window.onload = function() { }
或研究DOMReady事件。尽管这回答了您的问题,但实际上您的HTML无效(无关的
</div>
)可能使该解决方案无效。