создание объекта при нажатии на который вставка в форму из третьего + примочка
Здравствуйте!
Взялся изучать JavaScript :agree: Встал вопрос, как можно сделать вот такую вещь (с одной стороны вроде просто но ни где не нашел), для наглядности нарисовал структуру документа: ![]() Итак, имеем, <div class=content>, внутри которого в свою очередь есть <strong> с текстом внутри. Задача, с помощью скрипта создать ссылку, которая будет расположена внутри всех <div'ов> с классом content (на рисунке место под ссылку область с пунктирной границей) и при нажатии на эту ссылку в текстовое поле вставлялось бы содержимое <strong'a>, который находится именно в том <div'e> в котором эта ссылка была нажата. Ну как вставить во все div'ы ссылку я догадываюсь, а вот со всем остальным.... |
Цитата:
|
http://javascript.ru/start/dom
полагаю ТС-у нужно все-таки это. Alazaur, после прочтения этих метериалов, если будут еще вопросы, задавайте. но только уже конкретно, а не размыто |
Прошу извинить за такой пространственный вопрос, видимо спал уже)
Конкретизирую: <script> var CreateA= "<a href='#post' onclick='document.post.msg.innerHTML=this.parentNode.strong'>Вставка</a>"; var arr=document.getElementsByTagName("div"); i=0; while(arr[i] ){ if(arr[i].className=="content"){ name=arr[i].innerHTML; name=name.substring(0); arr[i].innerHTML=name+"<br>"+CreateA; } i++ } </script> Естественно не работает :p Я так понимаю, что-то надо добавить this.parentNode.strong.сюда, а что ума не приложу. И вопрос в догонку - при повторном нажатии в форму уже не добавляется ничего, как сделать чтобы работало, где-нибудь воткнуть return или что :secret: |
Цитата:
|
x-yuri,
я чего то туплю, ты имел ввиду getElementsByTagName('strong') как я понял, но при таком раскладе в форму добавляется - [object HTMLCollection] |
getElementsByTagName возвращает массив элементов, свойство innerHTML - содержимое элемента (включая html-тэги)
|
очень извиняюсь.
пытался набрать максимально информативный пост, но из-за случайного F5 не вышло. а по второму разу писать нервов нету короче:оно работает. поместите этот код в обработчик события window.onload window.onload=function(){ var CreateA= "<a href='#post' onclick='document.post.msg.innerHTML=this.parentNode.strong'>Вставка</a>"; var arr=document.getElementsByTagName("div"); i=0; while(arr[i] ){ if(arr[i].className=="content"){ name=arr[i].innerHTML; name=name.substring(0); arr[i].innerHTML=name+"<br>"+CreateA; } i++ } } |
Gvozd, x-yuri, та что ж такое то :(
x-yuri, при попытке сделать как ты сказал, т.е: document.post.msg.innerHTML=this.parentNode.getElementsByTagName('strong').innerHTML В форму вставляется - undefined. Gvozd, тоже самое - undefined.... вот приведу весь код: <html> <body> <div class="content" style="border: 1px solid #000; width: 300px; height: 100px; background: gray;"> <strong>Текст1</strong> </div> <div class="content" style="border: 1px solid #000; width: 300px; height: 100px; background: gray;"> <strong>Текст2</strong> </div> <form name="post" id="post"> <textarea name="msg" style="width: 300px; height: 100px;"></textarea> </form> <script> window.onload=function(){ var CreateA= "<a href='#post' onclick='document.post.msg.innerHTML=.......'>Вставка</a>"; var arr=document.getElementsByTagName("div"); i=0; while(arr[i] ){ if(arr[i].className=="content"){ name=arr[i].innerHTML; name=name.substring(0); arr[i].innerHTML=name+"<br>"+CreateA; } i++ } } </script> </body> </html> Там где проблема возникает поставил многоточие |
так у вас эта часть не работала?
var CreateA= "<a href='#post' onclick='document.post.msg.innerHTML=this.parentNode.getElementsByTagName(\"strong\")[0].innerHTML>Вставка</a>"; пробуйте |
Часовой пояс GMT +3, время: 10:08. |