document.write - как дописать документ
Я захотел сделать функцию, которая при щелчке на button дописывает в текуший html документ фразу (например в одну из ячеек уже написанной в этом документе таблицы), но!!! с чем я столкнулся - при иснользованиии функции document.write() необходимая строка не дописывается, а пишется заново на чистом листе.....как решить эту проблему...?
Спасибо. |
вот код:
<table border=1> <tr><td id='write'>данные</td></tr> </table> <script language="JavaScript" type="text/javascript"> function change_data(Adata){ document.getElementById("write").innerHTML=Adata; } </script> <input type="text" id="text_add" /> <input type='button' value='Нажми' onClick='change_data(document.getElementById("text_add").value)' /> |
я вот все пытаюсь сделать чеб при паведении мыши на ссылку али картинку, вылетала поверх уже загруженного html документа табличка с описанием этой ссылки или картинки. Но вот проблема - даже методом innerHTML табличка не поверх документа вылезает, а в чистом документе...чет я туплю
помогите мне...:( |
SunYang,
- создай скрытый div с абсолютным позиционированием - при наведении мыши на ссылку (картинку) показывай див и присваивай ему координаты мыши (меняй свойства top и left стиля дива) и меняй соответственно innetHTML div'a |
УРА!!! Я сделал вылезающую табличку!!! (на 3 ссылки)
function lifes() { eot = event.srcElement if(eot.id=="con_0") { rem=document.getElementById("move_0") if(rem.style.visibility=="hidden") rem.style.visibility="visible" else rem.style.visibility="hidden" } if(eot.id=="con_1") { rem=document.getElementById("move_1") if(rem.style.visibility=="hidden") rem.style.visibility="visible" else rem.style.visibility="hidden" } if(eot.id=="con_2") { rem=document.getElementById("move_2") if(rem.style.visibility=="hidden") rem.style.visibility="visible" else rem.style.visibility="hidden" } } |
SunYang, молодец =) А теперь можешь оптимизировать - ведь все три блока у тебя идентичны и меняются только от индекса в id элемента. Поэтому можно оставить только один блок и для переменной rem брать элемент с id, равным "move_" + "последний символ из id переменной eot".
|
доброй ночи, не стал плодить темы. у меня похожий вопрос:
document.write(sValue); пишет значение на новом листе а не тут же в документе. просьба не бить палками, я новичек. Пытаюсь самостоятельно разобраться, но что то пока не выходит. Вот код function findValue(li) { if( li == null ) return alert("No match!"); if( !!li.extra ) var sValue = li.extra[0]; else var sValue = li.selectValue; //alert("The value you selected was: " + sValue); document.write(sValue); } |
Цитата:
// Создаем текстовый узел var textNode = document.createTextNode(sValue); // Добавляем его на страницу document.body.appendChild(textNode); Другой вариант, с поддержкой HTML: // Создаем DIV элемент var holder = document.createElement('div'); holder.innerHTML = sValue; document.body.appendChild(holder); Третий вариант, наиболее похож на твой: document.body.insertAdjacentHTML('beforeend', sValue); |
Спасибо огромное, получилось, сейчас буду дальше писать обработчик. Если буду сидеть более суток, а так как я с нуля пытаюсь. курю гугл как говорят, спрошу по теме далее. Надеюсь до этого не дойдет.
|
не хочу наглеть, а как сделать чтобы этот результат не добавлялся постоянно в конец а менялся в конце. у insertAdjacentHTML нет такой возможности, зато мне понравилась эта тему. возьму её на будущее: http://javascript.ru/forum/xhtml-htm...-razmetki.html
|
Rus, создай элемент, например div, добавь его в конец body. И меняй его содержимое через .innerHTML = 'Новый контент' когда тебе нужно.
|
спасибо, сделал так
$('#sValue').text(li.selectValue); ..... <div id="sValue"></div> |
У меня такой вопрос, sValue в ланном случае выводит последнее значение из цикла в Div'е, как сделать чтобы значение выводилось интерактивно? тоесть 0,1,2,3,4,5,6,7,8 встолбик или встрочку все равно. У меня выходит только последнее значение - 8
for (var i = 0; i < 9; i++) { $('#sValue').text(i); } ..... <div id="sValue"></div> |
У тебя выводятся все цифры от 0 до 8, но ты же каждый раз стираешь старую цифру и записываешь новую, разве это не очевидно?
Создай массив [0..8] через цикл, а после цикла $(el).text(array.join(' ')) |
спасибо, реально помог. в моем случае
var a = []; for (var i = 0; i < 9; i++) { a[i] = i; } .... $('#sValue').text(a.join()); |
Плюсик к сожалению не могу поставить.
Скажи а как в данном случае, вывести каждое значение самостоятельно в отдельную ячейку таблицы? Причем тут известо максимальное значение i=9, а если оно меняется из другой формулы? Я думал о том чтобы создать так же массив sValue, но как мне его вытащить в Div'ы, ячейки таблицы неизвестного количества? |
Переформулирую по другому. Как вывести каждое значение самостоятельно в отдельную ячейку таблицы, в таблице должен быть Div со своим ID. количество ID не известно, а следовательно и DIV'ов. Тут оно равно 9, но может меняться по формуле.
var a = []; for (var i = 0; i < 9; i++) { a[i] = i; $('#sValue'+[i]).text(a[i]); //насчет правильности синтаксиса этого присвоения я могу ошибаться } ..... <td><div id="sValue"></div></td> ... <td><div id="sValue8"></div></td> |
нашел чужой пример, реализуется на document.write ('<tr>' + "текст" + '</tr>')
|
var row = document.createElement('tr'); var cell = document.createElement('td'); cell.innerHTML = "текст"; row.appendChild(cell); table.appendChild(row); |
Часовой пояс GMT +3, время: 19:26. |