Цитата:
Метод .html() применяется к объекту jQuery, полученному по конкретному элементу DOM num - объект jQuery со всеми элементами ".p" num[i] - конкретный элемент DOM $(num[i]) - объект jQuery конкретного элемента DOM |
Цитата:
У вас часть кода работает с JQ объектами, а часть с DOM (вот и назвал гибридом). Если на чистом JQ используя его методы, то
num.each(function(n, e) {
$(e).html($(e).html() += ' ' + ++n)
})
где .each() метод выполняющий тоже самое что for(...), n - это индекс текущего элемента, e - текуший элемент как DOM. А если доступен DOM имеющий innerHTML, то зачем же $(e).html($(e).html() += ' ' + ++n), если проще выполнить e.innerHTML += ' ' + ++n. Здесь $(e), это лишняя трата энергии. ;) |
Цитата:
Разве что древнюю какую версию jq используешь... |
Цитата:
if (a > b) { return -1; } if (a < b) { return -1; } if (a == b) { return 0; } } |
Цитата:
|
Цитата:
Цитата:
function sum() {
$(num).append(function(i){return ' ' + ++i});
}
В целом - так конечно короче и проще. Благодарю за подсказку. |
Цитата:
|
Цитата:
У Aetae объявление переменных
var $num = $('.p'),
В вашем варианте при
var num = $('.p'),
достаточно
function sum() {
num.append(function(i){return ' ' + ++i});
}
|
Еще вариант - для разнообразия
<div class="p">Первый</div>
<div class="p">Второй</div>
<div class="p">Третий</div>
<div class="p">Четвертый</div>
<button class="btn">Sum</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
var num = $('.p'),
btn = $('.btn');
btn.on({
'click': sum
});
function sum() {
num.html(function(i){return $(this).html() + ' ' + ++i});
}
</script>
Вместо $(this).html() можно использовать this.innerHTML |
Цитата:
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 07:49. |