скрыть div, используя JavaScript - PullRequest
0 голосов
/ 19 мая 2011

Я хотел бы скрыть div, которые не имеют идентификаторов, связанных с ними, используя javascript.Например, в sharepoint .ms-globalbreadcrumb не имеет идентификатора.

frame = document.getElementById('frame1'); 
frame.contentWindow.document.getElementById('ctl00_PlaceHolderGlobalNavigation_PlaceHolderGlobalNavigationSiteMap_GlobalNavigationSiteMap').style.display='none'; 

Приведенный выше код работает для частей, у которых есть идентификаторы, но я не уверен, как этого добиться для других элементов без идентификаторов.

Спасибо,

Ответы [ 4 ]

1 голос
/ 19 мая 2011

Вы бы упростили свою жизнь, используя что-то, что нормализует доступ к DOM, так что один и тот же код (для всего - форм, событий, свойств объекта и т. Д. И т. Д.) Работает во всех браузерах.Использование JQuery это просто:

$('div').hide();

, чтобы скрыть все элементы div ... и существует огромный диапазон 'селекторов' , чтобы уточнить ваш выбор.

1 голос
/ 19 мая 2011

Случай 1
Если вы хотите скрыть все div без идентификатора, вам придется зациклить все div и скрыть их на основе этого критерия.( найдите деления с помощью .getElementsByTagName())

var alldivs = document.getElementsByTagName('div');
for( var i = 0; i < alldivs.length; i++) {    
       alldivs[i].style.display = "none";
    }

Случай 2
Если вы хотите найтиэлементы, основанные на классе, как в вашем примере .ms-globalbreadcrumb then ( найти элементы с классом с .getElementsByClassName())

var allbyclass = document.getElementsByClassName('ms-globalbreadcrumb');
for( var i = 0; i < allbyclass.length; i++) {    
       allbyclass[i].style.display = "none";
    }

( getElementsByClassName не будет работать для IE9 версий IE ) до * примера

с обоими случаями в http://jsfiddle.net/gaby/H3nNr/


предложение

Используйте jQuery , который допускает широкий выбор селекторов и сложных обходов DOM, чтобы найти то, что вы хотите ..

  • Случай 1 в jQuery будет $('div:not([id])').hide();
  • Случай 2 в jQuery будет $('.ms-globalbreadcrumb').hide();
0 голосов
/ 19 мая 2011

так что есть другие методы, которые вы можете использовать вы можете получить их по тэгу или по классам

 document.getElementsByClassName
 document.getElementsByTagName

они возвращают список элементов, которые нужно перебросить, бросил

твой пример будет

var ellements = frame.contentWindow.document
   .getElementsByClassName("ms-globalbreadcrumb");
for(i in ellements) {
  ellements[i].style.display = "none";
}
0 голосов
/ 19 мая 2011

Если вы можете найти div в DOM, то сможете скрыть их.Например, если у div / parent / grandparent etc есть идентификатор, вы можете перемещаться по дереву DOM, используя Javascript, пока не найдете элемент, который хотите скрыть.

var elem = document.getElementById("topelement");
var elem2 = elem.firstChild.firstChild;
elem2.style.display = "none";

В JQuery есть много селекторов для созданияэто легко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...