Расширять код по моим условиям мы больше не имеем права. Пользоваться только JS
Задача:
При нажатии на li в контейнере <div id="content"> должен появится элемент <div>, причём не просто <div>, а с классом того li, который мы нажали. Например нажали мы на третий li, значит появился <div class='3'>(ну это так, как пример, чтобы смысл был понятен)
Чего я сумел добиться:
var content = document.getElementById('content') var div = content.getElementsByTagName('div') var ul = document.getElementsByTagName('ul').item(0) var li = ul.getElementsByTagName('li')
for(var i=0; i<li.length;i++){ var num = li.item(i).innerHTML li.item(i).onclick = function (){test2(this,num)} }
function test2(node,num){
var al = document.createElement('div') content.appendChild(al) al.className = 'class'+num }
Вопросы:
1) Ведь по-идее я пробегаюсь циклом по всем li, и с каждой итерацией записываю в переменную num разные значения, а затем в Этой-же итерации я вешаю онклики на li, которые опять-же соответствуют своей итерации li.item(i), в которых я вызываю функцию test2(this,num) с аргументами на саму ноду и ИМЕННО числом, соответствующим li.item(i).innerHTML.
Тогда вопрос, почему в итоге при нажатии на любой из li я получаю в контейнере див, но только именно с <div class="class4"> ???
2) Почему мой код НЕ работает без вот этой записи: var div = content.getElementsByTagName('div') ? Нафига она вообще нужна, если меня в принципе не интересует дочерние элементы, я же создаю элемент следующим способом var al = document.createElement('div') ?
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
psywalker
У нас есть:
Расширять код по моим условиям мы больше не имеем права. Пользоваться только JS
Задача:
При нажатии на li в контейнере <div id="content"> должен появится элемент <div>, причём не просто <div>, а с классом того li, который мы нажали. Например нажали мы на третий li, значит появился <div class='3'>(ну это так, как пример, чтобы смысл был понятен)
Чего я сумел добиться:
Вопросы:
1) Ведь по-идее я пробегаюсь циклом по всем li, и с каждой итерацией записываю в переменную num разные значения, а затем в Этой-же итерации я вешаю онклики на li, которые опять-же соответствуют своей итерации li.item(i), в которых я вызываю функцию test2(this,num) с аргументами на саму ноду и ИМЕННО числом, соответствующим li.item(i).innerHTML.
Тогда вопрос, почему в итоге при нажатии на любой из li я получаю в контейнере див, но только именно с <div class="class4"> ???
2) Почему мой код НЕ работает без вот этой записи: var div = content.getElementsByTagName('div') ? Нафига она вообще нужна, если меня в принципе не интересует дочерние элементы, я же создаю элемент следующим способом var al = document.createElement('div') ?
Link to comment
Share on other sites
35 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.