使用JavaScript隐藏元素的下一个同级 [英] Hide an element's next sibling with Javascript
问题描述
我从 document.getElementById('the_id')
中抓取了一个元素.如何获得下一个兄弟姐妹并将其隐藏?我试过了,但是没用:
I have an element grabbed from document.getElementById('the_id')
. How can I get its next sibling and hide it? I tried this but it didn't work:
elem.nextSibling.style.display = 'none';
Firebug错误是 elem.nextSibling.style未定义
.
Firebug error was elem.nextSibling.style is undefined
.
推荐答案
这是因为Firefox认为元素节点之间的空格是文本节点(而IE则不是),因此在Firefox上使用 .nextSibling
元素在Firefox中获取该文本节点.
it's because Firefox considers the whitespace between element nodes to be text nodes (whereas IE does not) and therefore using .nextSibling
on an element gets that text node in Firefox.
具有用于获取下一个元素节点的函数很有用.像这样
It's useful to have a function to use to get the next element node. Something like this
/*
Credit to John Resig for this function
taken from Pro JavaScript techniques
*/
function next(elem) {
do {
elem = elem.nextSibling;
} while (elem && elem.nodeType !== 1);
return elem;
}
那你就可以做
var elem = document.getElementById('the_id');
var nextElem = next(elem);
if (nextElem)
nextElem.style.display = 'none';
这篇关于使用JavaScript隐藏元素的下一个同级的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!