|
|
|
| Мне нужно удалить всех "детей" в body и установить вместо них одного нового сына. Для этого пишу так:
var div1=document.createElement('div');
div1.innerHTML="<p>Контейнер 1</p>"
document.body.appendChild(div1);
var div2=document.createElement('div');
div2.innerHTML="<p>Контейнер 2</p>"
document.body.appendChild(div2);
var div3=document.createElement('div');
div3.innerHTML="<p> Новый контейнер</p>"
for (i=0;i<document.body.childNodes.length;i++) document.body.removeChild(document.body.childNodes(i));
document.body.appendChild(div3);
|
Но при этом последний сын не удаляется, что естественно, т.к. здесь document.body.childNodes.length равно единице. Если же я напишу
for (i=0;i<=document.body.childNodes.length;i++)
|
то выскакивает ошибка "Недопустимый аргумент". А как мне решить эту проблему?
Спасибо. | |
|
|
|
|
|
|
|
для: coloboc66
(08.09.2006 в 12:33)
| | Тут дело в том, что массив и свойство length после каждого
удаления элемента изменяется поэтому идёт расколбас.
Можно так:
while(document.body.childNodes.length)
{
var l = document.body.childNodes.length-1;
document.body.removeChild(document.body.childNodes(l));
}
|
| |
|
|
|
|
|
|
|
для: coloboc66
(08.09.2006 в 12:33)
| | А как вы их по полу определяете? | |
|
|
|
|
|
|
|
для: 12345
(08.09.2006 в 14:11)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: Padonak
(08.09.2006 в 15:18)
| | Раз слово "тег" мужского рода, значит- сын. Правда мать (body) среднего рода, но это уже совсем другая история... | |
|
|
|
|
|
|
|
для: coloboc66
(08.09.2006 в 15:45)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: Padonak
(09.09.2006 в 00:23)
| | > емайо я давно так не ржал :-)))))))
"Смеяться, право, не грешно
над тем, что кажется смешно" ©
Но в вашем случае больше
напоминает "Смех без причины..." :-)))) | |
|
|
|
|
|
|
|
для: RMW
(09.09.2006 в 12:35)
| | RMW да я уже давно понял что тут все суровые парни у которых сводит мимические мышцы при попытке улыбнуцо | |
|
|
|
|
|
|
|
для: Padonak
(09.09.2006 в 13:18)
| | И ничего не сводит))))
#####
### ###
# #
## ##
# #
# #
# #
# # # #
# #
# #
# #
# #
# # #
# ## # #
# ## ## #
# #### ## #
# ######### #
# #
# #
## ##
# #
### ###
#####
|
| |
|
|
|
|
|
|
|
для: RMW
(09.09.2006 в 14:13)
| | :-))) это кажется называется ASCII-art? :-) | |
|
|
|
|
|
|
|
для: Padonak
(09.09.2006 в 17:54)
| | Кажется так.
Правда в исполнении
ASCIIPic.exe :) | |
|
|
|
|
|
|
|
для: RMW
(09.09.2006 в 19:53)
| | А вот проблемка кажись на эту же тему: в чате вывожу сообщения в <fiedset>. В результате fiedset заполняется тегами <p>. Мне нужно ограничить в нем число сообщений. Я это делаю так:
var count_msg=9;//устанавливаем ограничитель
if(document.getElementById('field_chat1').childNodes.length>count_msg)
{
count_msg1=document.getElementById('field_chat1').childNodes.length;
for(i=count_msg;i<count_msg1;i++) document.getElementById('field_chat1').removeChild(document.getElementById('field_chat1').childNodes(i));
}
|
Но снова выскакивает ошибка Недопустимый аргумент. Не могу сообразить, как ее устранить. | |
|
|
|
|
|
|
|
для: coloboc66
(20.09.2006 в 13:54)
| | <style type ="text/css">
<!--
.child {
width:100px;
height:20px;
background:#fff;
border: solid 1px #ff4500;
text-align:center;
}
-->
</style>
<body>
<div id = "field_chat" style="color:black;"></div>
</body>
<script language="JavaScript" type="text/javascript">
<!--
var limit= 9;//ограничитель
var block = document.getElementById('field_chat');
for(var i = 0; i < 12; i++){
var child = document.createElement("p");
child.className = "child";
child.appendChild(document.createTextNode(i));
if(block.childNodes.length >= limit){
alert('превышение лимита');break;
} else {
alert('лимит не превышен');
}
block.appendChild(child);
//alert(block.childNodes.length);
}
-->
</script> | |
|
|
|
|
|
|
|
для: katty
(20.09.2006 в 15:28)
| | Это не то, что мне нужно. У меня сообщения должны добавляться вверх без ограничений, а устаревшие нижние сообщения должны удаляться. | |
|
|
|
|
|
|
|
для: coloboc66
(20.09.2006 в 15:57)
| | может примерно так:
<style type ="text/css">
<!--
#field_chat{
color:black;
border: 1px solid #ff0000;
width: 110px;
padding-left: 5px;
}
.child {
width:100px;
height:20px;
background:#fff;
border: solid 1px #ff4500;
text-align:center;
}
-->
</style>
<body>
<div id = "field_chat" style=""></div>
</body>
<script language="JavaScript" type="text/javascript">
<!--
var limit= 9;//устанавливаем ограничитель
var block = document.getElementById('field_chat');
for(var i = 0; i < 9; i++){
var child = document.createElement("p");
child.className = "child";
child.appendChild(document.createTextNode(i));
alert('add message');
alert(typeof block.insertBefore);
block.insertBefore(child, block.childNodes[block.childNodes.length-i]);
}
var p = prompt("add new message?","yes");
var newChild = document.createElement("p");
newChild.className = "child";
newChild.appendChild(document.createTextNode("new!"));
if(p == "yes"){
block.insertBefore(newChild, block.childNodes[block.childNodes.length-i]);
if(block.childNodes.length > limit){
/* alert('лимит исчерпан');*/
block.removeChild(block.childNodes[block.childNodes.length-1]);
}
}
-->
</script>
|
| |
|
|
|
|
|
|
|
для: coloboc66
(20.09.2006 в 13:54)
| | Где-то так. Не проверял.
var count_msg=9;
var parent_msg=document.getElementById('field_chat1');
var childrens_msg=parent_msg.childNodes;
while(childrens_msg.length>count_msg)parent_msg.removeChild(childrens_msg.item(childrens_msg.length-1));
|
И лучше не обращаться к массивам с помощью
круглых скобок. Или [ ] или item() | |
|
|
|
|
|
|
|
для: RMW
(20.09.2006 в 17:43)
| | Спасибо. | |
|
|
|