Просто чтобы очистить эфир: this
возвращает собственный элемент DOM, тогда как $(this)
вернет его эквивалентный элемент jQuery. Поскольку .html()
является методом jQuery, он будет работать только с элементом jQuery, а не с собственным элементом DOM. Таким образом, чтобы получить HTML-код элемента, вам придется использовать либо this.innerHTML
, либо $(this).html()
.
Однако;это все равно не даст ожидаемого результата. Чтобы передать полный HTML-код дочерних элементов, вам нужно будет нажать вместо них outerHTML
.
TLDR;Вы получите ожидаемый результат, нажав HTML для нативного элемента DOM, используя this.outerHTML
:
$("#id").children('div').each(function(){arrayName.push(this.outerHTML)})
Или, если вы действительно хотите использовать jQuery, вы получите тот же результат из $(this).prop('outerHTML')
:
$("#id").children('div').each(function(){arrayName.push($(this).prop('outerHTML'))})
Рабочий образец можно посмотреть здесь:
let arrayName = []
$("#id").children('div').each(function(){arrayName.push(this.outerHTML)})
console.log("First approach: ", arrayName)
let arrayName2 = []
$("#id").children('div').each(function(){arrayName2.push($(this).prop('outerHTML'))})
console.log("Second approach: ", arrayName2)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="id">
<div class="contentitem">Bob</div>
<div class="contentitem">Joe</div>
</div>