JQuery обнаруживает, если тег сам закрытие

Существует ли способ обнаружить, если тег сам соглашение с JQuery как тег изображения? Что-то динамическое не только тег изображения.

if ($('.selector')[0].tagName.toLowerCase()=="img") {
    // do something
}
9
задан Hatchware 18 February 2010 в 21:41
поделиться

4 ответа

Вам нужно различать пустой элемент и самозакрывающийся? Если нет, вы можете использовать:

if ($(".selector").is(":empty")) {
  // do something
}

Но если вы говорите об определении того, должен ли данный HTML-тег быть пустым или нет, вы не можете сделать это программно, потому что вам не мешают создавать недопустимый HTML, и вам нужно чтобы проверить его на соответствие DTD, чтобы узнать.

2
ответ дан 4 December 2019 в 11:04
поделиться

Вам нужно немного предыстории. HTML-разметка, передаваемая по проводам, разбирается браузером в дерево DOM. В этот момент исходная разметка исчезает, отслужив свой срок, и больше не существует. Когда вы делаете innerHTML для элемента, это не буквальный HTML, который породил элемент, а сериализация браузером этого поддерева DOM.

Дело в том, что нет никакой разницы между

и
. Поэтому просто посмотрите, есть ли у него дочерние элементы. Если нет, то у элемента есть возможное XHTML-представление, использующее самозакрывающийся тег.

element.children().length == 0

или, как говорит Клетус:

element.is(":empty")
4
ответ дан 4 December 2019 в 11:04
поделиться

jQuery использует этот список внутри:

/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i

Вы можете сделать то же самое:

if(/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i.test($('.selector')[0].tagName)) {
//do something
}
13
ответ дан 4 December 2019 в 11:04
поделиться

AFAIK, нет прямого пути с использованием веб-форм (.aspx) в качестве представления. Однако можно использовать другие механизмы просмотра (например, Stringtemplate ) и встраивать страницы и изображения в качестве ресурсов в библиотеку dll . Вам нужно будет реализовать:

  • Ваш собственный механизм просмотра
  • Изображение и другие ресурсы (css, js и т.д.), обслуживающие контроллеры

Надеюсь, что это имеет смысл...

-121--4435006-

jЗапрос использует этот список внутренне:

/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i

Можно сделать то же самое:

if(/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i.test($('.selector')[0].tagName)) {
//do something
}
-121--3286594-

Можно проверить метод доступа .html () , чтобы проверить, не возвращает ли он пустую последовательность. Несмотря на то, что это возвращает значение true на < p >

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

0
ответ дан 4 December 2019 в 11:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: