span#2
является недопустимым селектором CSS, селекторы идентификаторов не могут начинаться с неэкранированных цифр (больше в spe c) Как правило, лучше не использовать значения идентификаторов, которые начинаются с цифр, но если вы это сделаете, вам придется выбирать их по-другому - либо не используя селектор CSS:
span = document.getElementById("2");
.. или, избежав этого (но, честно говоря, это немного уродливо), или используя форму атрибута:
span = document.querySelector("[id='2']");
Обратите также внимание Скотт Маркус 'ответ - если ваш код не был' t добавляя li
к документу перед попыткой получить элемент, вы можете либо добавить его к документу, либо использовать querySelector
для li
:
span = li.querySelector("[id='2']");
В селекторе CSS, как указал Таплар в комментарии, в данном конкретном случае, поскольку у span
есть класс, вы можете добавить класс:
span = document.querySelector("[id='2'].item");
// or
span = li.querySelector("[id='2'].item");