Используйте childNodes
вместо. children
начинался как частное свойство, которое есть в IE, тогда как childNodes
входит в спецификацию W3C DOM и поддерживается всеми основными браузерами, выпущенными в последнее десятилетие. Разница в том, что children
содержит только элементы, тогда как childNodes
содержит все типы, в частности, текстовые узлы и узлы комментариев.
Я оптимизировал ваш код ниже. Вы должны объявить все свои переменные с var
, включая те, которые используются в циклах, таких как i
. Кроме того, document.getElementById(site_child_nodes[i].id)
не требуется: он потерпит неудачу, если элемент не имеет идентификатора и точно такой же, как site_child_nodes[i]
в противном случае.
var site_result_content = document.getElementById(content_id);
var site_child_nodes = site_result_content.childNodes;
alert('started');
for (var i = 0, len = site_child_nodes.length; i < len; ++i) {
if (site_child_nodes[i].nodeType == 1) {
alert('cycle1');
site_child_nodes[i].className = 'tab_content';
ShowHide(site_child_nodes[i].id, 'hidden');
}
}