Я хочу добавить строку ко всем элементам списка ul при нажатии кнопки.
При нажатии кнопки элементы должны измениться с List Item 01 на 1 2 3 List Items 01
Вот код, который у меня есть:
function addPadding() {
var list = document.getElementById("ypnList").getElementsByTagName("li");
for (i = 0; i < list[i].length; i++) {
list[i].id = "1 2 2 " + list[i].id;
}
}
function addPadding() {
var list = document.getElementById("ypnList").getElementsByTagName("li");
for (i = 0; i < list[i].length; i++) {
list[i].id = "1 2 2 " + list[i].id;
}
}#ypnScrollbox {
height: 8em;
overflow-y: scroll;
border: 1px solid aqua;
width: 50%;
padding-top: 0.5em;
}
#ypnScrollbox>ul {
list-style-type: none;
}
button {
margin-top: 1em;
background: wheat;
}<div id = "ypnScrollbox">
<ul id = "ypnList" class = "ypnList">
<li>List Item 01</li>
<li>List Item 02</li>
<li>List Item 03</li>
<li>List Item 04</li>
<li>List Item 05</li>
<li>List Item 06</li>
<li>List Item 07</li>
<li>List Item 08</li>
<li>List Item 09</li>
<li>List Item 10</li>
<li>List Item 11</li>
<li>List Item 12</li>
<li>List Item 13</li>
<li>List Item 14</li>
<li>List Item 15</li>
<li>List Item 16</li>
<li>List Item 17</li>
<li>List Item 18</li>
<li>List Item 19</li>
<li>List Item 20</li>
<li>List Item 21</li>
</ul>
</div>
<br><br>
<button onclick = "addPadding()">Add Padding</button>Если вы хотите добавить текст к содержание элемента, используйте innerHTML += ... Однако имя функции «addPadding», поэтому вы действительно хотите вместо этого добавить отступ?
Каков конечный результат, который вы хотите?
После редактирования в вашем вопросе говорится, что вы хотите изменить Пункт списка на Список элементов, или это опечатка?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это?
function addPadding() {
var list = document.querySelectorAll("li");
for (i = 0; i < list.length; i++) {
list[i].innerHTML = " " + list[i].innerHTML;
}
}#ypnScrollbox {
height: 8em;
overflow-y: scroll;
border: 1px solid aqua;
width: 50%;
padding-top: 0.5em;
}
#ypnScrollbox>ul {
list-style-type: none;
}
button {
margin-top: 1em;
background: wheat;
}
li {
white-space:pre;
}<div id = "ypnScrollbox">
<ul id = "ypnList" class = "ypnList">
<li>List Item 01</li>
<li>List Item 02</li>
<li>List Item 03</li>
<li>List Item 04</li>
<li>List Item 05</li>
<li>List Item 06</li>
<li>List Item 07</li>
<li>List Item 08</li>
<li>List Item 09</li>
<li>List Item 10</li>
<li>List Item 11</li>
<li>List Item 12</li>
<li>List Item 13</li>
<li>List Item 14</li>
<li>List Item 15</li>
<li>List Item 16</li>
<li>List Item 17</li>
<li>List Item 18</li>
<li>List Item 19</li>
<li>List Item 20</li>
<li>List Item 21</li>
</ul>
</div>
<br><br>
<button onclick = "addPadding()">Add Padding</button>почему мы должны использовать .innerHTML? когда содержимое li хранится в массиве напрямую?
вы должны изучить javascript.
Любые хорошие ресурсы с простыми объяснениями, которые вы могли бы мне предложить?
Неясно, хотите ли вы что-то добавить к атрибуту элемента или в его innerHTML. Поэтому я рассмотрю оба сценария
Для внутреннего HTML
function addPadding() {
var list = document.getElementById("ypnList").getElementsByTagName("li");
for (var i = 0; i < list.length; i++) {
list[i].innerHTML = list[i].innerHTML + "content I want to add";
}
}
Для атрибута
Это добавит некоторый контент в атрибут id, однако это может быть class или любой другой атрибут.
function addPadding() {
var list = document.getElementById("ypnList").getElementsByTagName("li");
for (var i = 0; i < list.length; i++) {
var attrValue = list[i].getAttribute('id');
list[i].setAttribute('id', attrValue + "content I want to add")
}
}
list[i].length необходимо заменить на list.lengthправильно, я скопировал код кода вопроса, позвольте мне исправить
исправлено, больше никогда не буду копировать и вставлять код, клянусь
ожидаемый результат не ясен