<div class="post-content">
<p>xxxxx</p>
</div>
<div class="post-content">
<p>Test1</p>
<p>Test2</p>
<p>Test3</p>
</div>
$(document).ready(function () {
$('.post-content').each(function () {
//alert($(this).children.length);
alert($(this).length);
console.log($(this).html());
});
});
Длина должна быть числом p детей постконтента. почему вывод неправильный?
В этом случае 1 и 3
children
- это метод, вы должны называть его:
alert($(this).children().length);
// call the method ^^
Обновлено DEMO
$(this).length
всегда будет возвращать 1
потому что поскольку this
элемент DOM, $(this)
создает выделение с одним элементом.
Поскольку контекст (это) является объектом jQuery, а не
$(this).length
Вы можете использовать
$(this).children().length
this
элемент DOM. $(this)
является объектом jQuery. Но $(this).children()
возвращает объект jQuery, поэтому я не понимаю аргумента «Поскольку контекст (это) является объектом jQuery»
Попробовать .children()
$(document).ready(function () {
$('.post-content').each(function () {
var count = $(this).children().length;
alert(count);
});
});
p
длина var count = $(this).children('p').length;
.find()
alert($(this).length);
относится к элементу DOM, поэтому длина всегда будет равна 1
используйте $(this).children().length
$.each
this
экземпляр элемента селектора ... будет иметь длину только1