Есть ли способ получить ссылку на все абзацы или заголовки на веб-странице в JavaScript? - PullRequest
1 голос
/ 07 апреля 2010

Я пишу простой скрипт Greasemonkey для удаления всех изображений, заголовков и абзацев с веб-страницы (это потому, что кто-то хочет использовать изображения нескольких популярных веб-сайтов с изображениями и текстом, удаленными в презентации о брендинге веб-сайтов ). Я понял, как это сделать с изображениями, используя цикл for и массив document.images, например:

var i = 0;
var imglngth = document.images.length;

for(i=0;i<imglngth;i++)
{
    document.images[i].style.display="none";
}

Однако я не верю, что есть объект, представляющий абзацы или заголовки. Любые предложения о том, как я мог бы реализовать это?

Ответы [ 2 ]

3 голосов
/ 07 апреля 2010

Если заголовки находятся в тегах <h1> - <h6>, вы можете использовать метод getElementsByTagName из DOM API и цикл для получения всего от <h1> до <h6>.

for( i = 1; i<= 6; i++ ) { 
    var tag = 'h' + i;
    var heads = document.getElementsByTagName( tag );
    for ( j = 0; j < heads.length; j++ ) { 
        heads[j].style.display = 'none';
    }
}

Если документ не использует теги заголовка, возможно, вам придется перепроектировать их таблицу стилей и сделать что-то с немного большей логикой.

Конечно, обход API DOM вручную может быть проблемой. Если вы можете использовать что-то вроде jQuery, это будет немного проще:

$( ':header' ).each( function() { ... } );
1 голос
/ 07 апреля 2010

Использование jQuery было бы очень полезно для получения всех элементов <p>.

$('p').each(function(){
   // do stuff
});

Вот ссылка на некоторую информацию о jQuery и GreaseMonkey

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