我的wordpress博客遇到了语法荧光笔演变插件的问题,而且这个奇怪的div元素突然出现了:
<div style="z-index: -1; position:absolute; top:0px; left: 0px; width: 100%; height: 4031px;"></div>
这会导致我的页面扩展,在页面末尾创建一个大空间。这也可以在每个wordpress博客上找到。有趣的是,只有chrome看到(使用Inspect Element)。我已经尝试过IE9开发者工具和FF firebug,div不在那里,我的页面也没问题。
注意:我已经发布了单独的问题here。我的问题与此不同。
我想解决这个小问题,我想起来就是为了这个而使用JavaScript。我想要做的是:使用javascript删除div 。
很容易删除带有ID或类的div,但这个没有任何。我也不想影响所有其他div。我怎么能做到这一点?
P.S。它没有父ID或类。它就在容器类div之后。它的父亲是<body>
。
编辑:这是html:
答案 0 :(得分:2)
如果它总是持续或接近最后,你可以使用jQuery或普通的CSS3选择器
$('body > div:last-child').remove();
OR
$('body > div:nth-last-child(n)').remove();
的更多信息
或者你可以使用CSS,即
body > div:last-child (or div:nth-last-child(n)) {
display: none;
}
答案 1 :(得分:1)
如果您使用的是jQuery,则可以使用可能已定义ID或类的父级或同级div来引用div。
例如:
<div id="parentDIVID">
<div>your problem div</div>
</div>
Then you can use jQuery to reference your problem div like this : $("#parentDIVID > div")
如果你可以提供更多关于你的问题div的html代码,我们可以构建一个适合你的jQuery选择器。
更新:根据提供的标记
function removeDiv() {
var parent = document.getElementById("stimuli_overlay").parentNode;
var children = document.getElementById("stimuli_overlay").parentNode.childNodes;
for (var i = 0; i < children.length; i++) {
if (children[i].style.zIndex == -1)
parent.removeChild(children[i]);
}
}
答案 2 :(得分:1)
你可以这样做:
var els = document.getElementsByTagName('div');
for (var i = 0; l = els.length; i < l; i++) {
if (els[i].innerHTML == 'style....') {
els[i].parentNode.removeChild(els[i]);
}
}
答案 3 :(得分:1)
更新:基于您不能依赖下面使用的div的事实。
如果div确实是文档中的始终是最后一个div ,这实际上更容易:
var divs, div;
divs = document.getElementsByTagName("div");
if (divs.length > 0) {
div = divs.item(divs.length - 1);
div.parentNode.removeChild(div);
}
length - 1
将删除文档中的最后一个div。如果您需要跳过灯箱div或其他内容,请调整为使用- 2
或- 3
等。
旧答案:
鉴于这种结构,这些内容如下:
// Get the div that follows it, which conveniently has an ID
var div = document.getElementById('stimuli_overlay');
// If that worked...
if (div) {
// ...move to the previous div, with a bit of paranoia about blank non-element
// nodes in-between
div = div.previousSibling;
while (div && (div.nodeType !== 1 || div.tagName !== "DIV")) {
div = div.previousSibling;
}
// Check that this really is the right div
if (div && div.tagName === "DIV"
// The following checks look for some of the style properties that your
// screenshot shows are set on the div
&& div.style.position == "absolute"
&& div.style.zIndex == "-1"
&& div.style.top == "0px"
&& div.style.left == "0px"
&& div.style.width == "100%"
&& /* ...possibly more checks here... */) {
// Remove it
div.parentNode.removeChild(div);
}
}