你不應該一個for-in循環的使用。
document.getElementsByClassName('someClass')
返回NodeList,不從Array.prototype
繼承,但它在某些方面類似。這是一個節點列表,就像名稱所示。這意味着它有一個length
性能,應該只使用訪問:
var myElements = document.getElementsByClassName('yourClass');
for (var i = 0, ii = myElements.length; i < ii; i++) {
console.dir(myElements[i].style);
};
這裏是你應該如何真正隱藏的元素。
/**
* Shows or hides an element from the page. Hiding the element is done by
* setting the display property to "none", removing the element from the
* rendering hierarchy so it takes up no space. To show the element, the default
* inherited display property is restored (defined either in stylesheets or by
* the browser's default style rules.)
*
* Caveat 1: if the inherited display property for the element is set to "none"
* by the stylesheets, that is the property that will be restored by a call to
* showElement(), effectively toggling the display between "none" and "none".
*
* Caveat 2: if the element display style is set inline (by setting either
* element.style.display or a style attribute in the HTML), a call to
* showElement will clear that setting and defer to the inherited style in the
* stylesheet.
* @param {Element} el Element to show or hide.
* @param {*} display True to render the element in its default style,
* false to disable rendering the element.
*/
var showElement = function(el, display) {
el.style.display = display ? '' : 'none';
};
var myElement = document.getElementById('someID');
showElement(myElement, false);// it should now be hidden.
在哪些瀏覽器? –
你正在使用哪個瀏覽器? – Pranav
最新FF,17.0.1 – user1632298