jquery получает html из пользовательских элементов без закрывающего тега

#javascript #jquery #html #tags

#javascript #jquery #HTML #Теги

Вопрос:

Я определяю пользовательские html-элементы, как показано ниже:

 <div class="test">
    <myelement1 class="elclass" />
    <myelement2 class="elclass" >
    <myelement3 class="elclass"> my html </myelement3>
</div>
  

и получить html-код из них с помощью кода jquery:

 var elementHtml = "";
$('.test').find(".elclass").each(function(){elementHtml  = "my element html: "   $(this).html();});
alert(elementHtml);
  

это прекрасно работает с myelement3, но не работает должным образом с myelement1 и myelement2.
Как получить html из myelement1 и myelement2? Я знаю, что если это работает нормально, html-код myelement1 и myelement2 будет равен null.

Обновить:

Я знаю, что myelement2 не является стандартным, но в html есть некоторые элементы, такие как myelement1 и myelement2. Например: <input> вы также можете написать <input/> , <img> или <img/> . Я хочу создать пользовательские элементы трех типов:

 1.<tagname>
2.<tagname/>
3.<tagname></tagname>
  

Я также знаю, что HTML-коды myelement1 и myelement2 пусты, но я хочу получить от них html.
Есть ли способ получить html для всех вышеперечисленных типов пользовательских элементов?

Комментарии:

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

2. кажется, нетрудно просто закрыть теги

3. Самозакрывающиеся элементы определены в определении типа документа (DTD), вы не можете просто создавать свои собственные самозакрывающиеся элементы и ожидать, что это сработает.

Ответ №1:

Вы забыли закрыть myelement2.

Также html myelement1 и myelement2 пусты

Ответ №2:

вы забыли поставить / в конце вашего myelement2 тега:

 <div class="test">
    <myelement1 class="elclass" />
    <myelement2 class="elclass" /> 
    <myelement3 class="elclass"> my html </myelement3>
</div>
  

Комментарии:

1. // комментарии недопустимы в HTML. Было бы лучше написать полное объяснение перед опубликованным вами кодом.