Цитата:
Метод .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, время: 17:25. |