Сегодня вечером я начал работать над экспериментальным проектом. Я понял, что мне нужно определить, закрывается ли группа выбранных узлов самостоятельно или нет.

Например, предположим, что я запрашиваю дом и получаю эту коллекцию узлов:

<br/><br/><p></p><div></div></br/>

Есть ли у элементов свойство, которое может определять, какие из них есть?

Более того, вместо фильтрации по конкретным элементам html (о, если бы это были единственные ограничения), предположим, что я разбираю XML-документ, который может содержать теги с произвольными именами.

2
Geuis 7 Июл 2010 в 09:50

2 ответа

Лучший ответ

XML не отличает самозакрывающиеся теги от пустых тегов, поэтому <p /> и <p></p> идентичны, что касается XML.

Некоторые анализаторы XML будут разбирать все такие структуры на <p />, некоторые будут разбирать их все на <p></p>, а некоторые просто оставят их как есть.

Я бы сказал, что нет надежного способа сделать это - вам нужно будет специально протестировать свой браузер, посмотреть, что именно возвращается, и можете ли вы с этим работать (например, поиск />).

1
Oded 7 Июл 2010 в 05:55

Единственное, что я могу придумать, это то, что каждый из этих узлов выполняет для них tostring и проверяет, что последние два символа равны />, но, насколько мне известно, нет предопределенного метода определения того, является ли узел самостоятельным. закрыто или нет

Возможно, я ошибаюсь насчет tostring, но есть способ просто получить весь узел в виде текста - я знаю, что для этого есть функция jQuery, но не могу вспомнить, как это сделать на чистом JS.

0
Darko Z 7 Июл 2010 в 05:54