Исключить определенные TagNames из * selection - PullRequest
0 голосов
/ 03 июня 2011

Используя выражение:

var children = document.getElementById('id').getElementsByTagName('*');

Я хотел бы исключить все
элементы, есть ли синтаксис для getElementsByTagName , который позволяет мне это сделать, или каким-либо другим приятным способом?

Ответы [ 4 ]

2 голосов
/ 03 июня 2011

Вы не можете сделать это с помощью встроенной функции, но вы можете легко фильтровать.

http://jsfiddle.net/idbentley/ncH95/4/

Было бы проще использовать jQuery или подобную библиотеку (Zepto - хорошая крошечная библиотека), но если вы хотите использовать сырой javascript, вы можете использовать выше.

1 голос
/ 03 июня 2011

С помощью jQuery вы можете сделать:

$('#id *').not('br');
1 голос
/ 03 июня 2011

Если вы используете фреймворк, такой как jquery, вы можете сделать

$('#id').children().not('br');
0 голосов
/ 03 июня 2011

Для этого нет специального оператора, но вы можете легко фильтровать.

(function () {
    var element = document.getElementById('id');

    if (element.tagName === "br")
        throw "AHHHHH!!! IT'S A BR AHHHHH!!!!!!";

    // Do stuff if it's not a br.
}).apply(this);
...