Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.08.2012, 14:28
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

Создание тега кнопки и вывод
<div id="menu">
<input type="text"><br>
<input type="button" onclick="NewTeg()" value="Добавить кнопку">
</div>


По нажатии на кнопку создает новый тег инпут и добавляет в конец(перед закрывающим тегом DIV)
function NewTeg() {
var Div=document.getElementById('menu');
//Можно тупо так(наверно),но хотелось бы через объекты создать тег(если есть такой способ)
button='<input type="button" id="NewButton" value="Новая кнопка">';
//И вот вся проблема тут - Как ее добавить в конец дива?

Div.NewButton=button;

}


Можно конечно через InnerHTML, но это весь код придется обрабатывать...

Последний раз редактировалось vitorrio, 27.08.2012 в 14:34.
Ответить с цитированием
  #2 (permalink)  
Старый 27.08.2012, 15:05
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

vitorrio,
function NewTeg() {
    var div=document.getElementById('menu');
    var button=document.createElement("input");
    button.setAttribute("type", "button");
    button.setAttribute("id", "NewButton");
    button.setAttribute("value", "Новая кнопка");
    /*можно сделать и так
    button.type = "button";
    button.id = "NewButton";
    button.value = "Новая кнопка";
    */
    div.appendChild(button);
}
Ответить с цитированием
  #3 (permalink)  
Старый 27.08.2012, 15:18
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

А почему нельзя изменить функцию onclick у кнопки таким способом?

function vers_dlya_pechati()
{
var 
ButPechat=document.getElementById('pechat');

//Это значение меняет
ButPechat.value='Вернуться назад';

alert(ButPechat.onclick);

//а Это нет - почему?
ButPechat.onclick='vers_dlya_prosmotra()';

//таким образом все-таки сменило
ButPechat.setAttribute("onclick", "vers_dlya_prosmotra()");


}
Ответить с цитированием
  #4 (permalink)  
Старый 27.08.2012, 15:25
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

vitorrio,
//а Это нет - почему?
//ButPechat.onclick='vers_dlya_prosmotra()';
ButPechat.onclick = vers_dlya_prosmotra;
//или
ButPechat.onclick = function () { vers_dlya_prosmotra() };
Ответить с цитированием
  #5 (permalink)  
Старый 27.08.2012, 15:40
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

lord2kim,
Странно, но чет не работает ни первый ни второй вариант, тупо все остается по старому, а setAttribute без проблем работает.

Вопрос еще один: Если у таблицы есть caption то к ней я могу обратиться таким образом:

//тут table - это не caption это сама таблица
var table=document.getElementById('table');
//Т.е. тут я обращаюсь как к вложенному элементу
table.caption.innerHTML='Текст';


Почему же я не могу обратиться к вложенному элементу input в блоке дива в примере который я написал в первом посте ? :

var Div=document.getElementById('menu');
//вместо input и id пробовал писать - просто не выводит окно
alert(Div.input.value)
Ответить с цитированием
  #6 (permalink)  
Старый 27.08.2012, 16:05
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

Еще вопрос про уничтожение элементов. Вот так нормально уничтожается:

var Div=document.getElementById('menu')
document.body.removeChild(Div);

А если я хочу уничтожить только кнопку добавляя ему id Например ?
Пробовал по разному нифига не выходит, если эту кнопку выносить за переделы дива то работает, а если внутри то нет, проблема вот тут :
document.body.Сюда что писать?.removeChild(button)
Ответить с цитированием
  #7 (permalink)  
Старый 27.08.2012, 16:11
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

http://learn.javascript.ru/dom
Ответить с цитированием
  #8 (permalink)  
Старый 27.08.2012, 16:14
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от vitorrio
document.body.Сюда что писать?.removeChild(button)
кто родитель, ссылку на того и надо писать перед removeChild(здесь ссылка на удаляемый элемент)
получить эти ссылки можно разными путями: по id, через children и т.п. (см.ccылку)
Ответить с цитированием
  #9 (permalink)  
Старый 27.08.2012, 16:29
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от vitorrio Посмотреть сообщение
lord2kim,
Странно, но чет не работает ни первый ни второй вариант, тупо все остается по старому, а setAttribute без проблем работает.

Вопрос еще один: Если у таблицы есть caption то к ней я могу обратиться таким образом:

//тут table - это не caption это сама таблица
var table=document.getElementById('table');
//Т.е. тут я обращаюсь как к вложенному элементу
table.caption.innerHTML='Текст';


Почему же я не могу обратиться к вложенному элементу input в блоке дива в примере который я написал в первом посте ? :

var Div=document.getElementById('menu');
//вместо input и id пробовал писать - просто не выводит окно
alert(Div.input.value)
можно обратиться по разному...
getElementById("id input-a"), getElementsByTagName("input")[№ input-a в div-e с 0-ля], div.(имя input-a).value

Сообщение от vitorrio Посмотреть сообщение
Еще вопрос про уничтожение элементов. Вот так нормально уничтожается:

var Div=document.getElementById('menu')
document.body.removeChild(Div);

А если я хочу уничтожить только кнопку добавляя ему id Например ?
Пробовал по разному нифига не выходит, если эту кнопку выносить за переделы дива то работает, а если внутри то нет, проблема вот тут :
document.body.Сюда что писать?.removeChild(button)
вы добавляли button к div с id = "menu", вот его туда и подсавляйте
document.getElementById("menu").removeChild(button);
Ответить с цитированием
  #10 (permalink)  
Старый 27.08.2012, 16:30
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<div id="menu">
<input type="text"><br>
<input name="butt" type="button" onclick="NewTeg()" value="Добавить кнопку">
</div>

<script type="text/javascript">
function NewTeg(){
var Div=document.getElementById('menu');
var button_2=Div.getElementsByTagName('input')[1];
alert("button_2.value=>"+button_2.value)
Div.removeChild(button_2)
}
</script>

Последний раз редактировалось Deff, 27.08.2012 в 16:32.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление события кнопки TheHappy Общие вопросы Javascript 0 06.03.2012 10:30
Вывод тега <script> после ajax запроса в указанном div`е Dimkus AJAX и COMET 1 27.02.2012 01:41
Вывод переменных MasterHrust Javascript под браузер 4 03.08.2011 15:41
создание собственного тега freeek Events/DOM/Window 8 02.06.2010 20:33
создание и вывод куки Robot IE Общие вопросы Javascript 2 10.03.2009 16:59