Javascript.RU

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

Как удалить элемент
Всем привет я новичёк в ява скриптах помогите правильно сделать данную функцию
<script>
var q=new Array();
function showhide(ve,ps)
{
    // Находим все дивы c нужным значением атрибута gr и складываем в 1 массив
    if(q[ve]==undefined) {
    q[ve]=new Array();
    v=document.getElementsByTagName('span');
 
    for(i=0;i<v.length;i++)
         if(v[i].getAttribute && v[i].getAttribute('gr')==ve) q[ve][q[ve].length]=v[i];
    }

    for(i in q[ve])
    {


        // Если ищем див по id
        if(q[ve][i].id && q[ve][i].id==ps) ps = i;
        // Этот блок можно убрать, если не нужны кнопки "<" / ">"
        if(q[ve][i].style.display!='none')
        {
        if(ps=='next') ps=((i*1+1)==q[ve].length?0:i*1+1);
        if(ps=='prev') ps=((i-1)==(-1)?q[ve].length-1:i-1);
        }
    q[ve][i].style.display='none';
    }
 
q[ve][ps].style.display='';

}
</script>

как сделать чтобы предыдущий элемент на странице не скрывался а удалялся ?

Последний раз редактировалось SergoMorello, 07.05.2011 в 13:38.
Ответить с цитированием
  #2 (permalink)  
Старый 07.05.2011, 13:38
Интересующийся
Отправить личное сообщение для SergoMorello Посмотреть профиль Найти все сообщения от SergoMorello
 
Регистрация: 06.05.2011
Сообщений: 21

мне кто нибудь поможет?
Ответить с цитированием
  #3 (permalink)  
Старый 07.05.2011, 14:57
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от SergoMorello
мне кто нибудь поможет?
такое чувство что ваш код пропустили через обфускатор.
если вам нужно удалить элемент, то воспользуйтесь методом removeChild(), если заменить replaceChild(), пропустить - инструкцией continue
Ответить с цитированием
  #4 (permalink)  
Старый 07.05.2011, 15:05
Интересующийся
Отправить личное сообщение для SergoMorello Посмотреть профиль Найти все сообщения от SergoMorello
 
Регистрация: 06.05.2011
Сообщений: 21

Сообщение от monolithed Посмотреть сообщение
такое чувство что ваш код пропустили через обфускатор.
если вам нужно удалить элемент, то воспользуйтесь методом removeChild(), если заменить replaceChild(), пропустить - инструкцией continue
я незнаю что такое обфускатор но дело не в этом , данный код работает исправно но его минус то что он просто скрывает предыдущий элемент а мне нужно чтобы он его удалял , если вам не трудно пожалуйста напишите как правильно и что заменить (я понимаю что данную строку style.display='none'; но если я пишу q[ve][i].removeChild(); то код вообще перестаёт работать)
Ответить с цитированием
  #5 (permalink)  
Старый 07.05.2011, 15:30
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Внимательно проанализируйте:
<script type="text/javascript">
window.onload = function() {
    var div = document.getElementById('div'), p = div.children, i = p.length;
    while(i--) {
        var node = p[i];
        if(node.id == 'p') {
            div.removeChild(node);  //удаляем элемент с id="p"
       }
    }
};
</script>

<div id="div">
    <p>1</p>
    <p id="p">2</p>
    <p>3</p>
</div>

Последний раз редактировалось monolithed, 07.05.2011 в 15:38.
Ответить с цитированием
  #6 (permalink)  
Старый 07.05.2011, 15:41
Интересующийся
Отправить личное сообщение для SergoMorello Посмотреть профиль Найти все сообщения от SergoMorello
 
Регистрация: 06.05.2011
Сообщений: 21

Сообщение от monolithed Посмотреть сообщение
На основе этого примера вы сможете понять свои ошибки:
<script type="text/javascript">
window.onload = function() {
    var div = document.getElementById('div'), p = div.children, i = p.length;
    while(i--) {
        var node = p[i];
        if(node.nodeName == 'P' && node.id == 'p') {
            div.removeChild(node);  //удаляем элемент с id="p"
       }
    }
};
</script>

<div id="div">
    <p>1</p>
    <p id="p">2</p>
    <p>3</p>
</div>
понял только то что элемент 2 удалится (как работает это удаление я уже разобрался ещё вчера но мне нужно чтобы оно работало именно на том коде если вы можете пожалуйста помогите где что исправить)
Ответить с цитированием
  #7 (permalink)  
Старый 07.05.2011, 15:47
Интересующийся
Отправить личное сообщение для SergoMorello Посмотреть профиль Найти все сообщения от SergoMorello
 
Регистрация: 06.05.2011
Сообщений: 21

или может поможете написать код подобный моему (на странице отображается много элементов они все скрыты открываеш 1 , открываеш 2 и первый закрывается(нужно чтобы удалялся))
Ответить с цитированием
  #8 (permalink)  
Старый 08.05.2011, 03:46
Интересующийся
Отправить личное сообщение для SergoMorello Посмотреть профиль Найти все сообщения от SergoMorello
 
Регистрация: 06.05.2011
Сообщений: 21

Всё спасибо больше не требуется сам сделал может и неправильно но главное работает , вот мож кому пригодится
<script>
var q=new Array();
function showhidens(ve,ps)
{
    // Находим все дивы c нужным значением атрибута gr и складываем в 1 массив
    if(q[ve]==undefined) {
    q[ve]=new Array();
    v=document.getElementsByTagName('span');
 
    for(i=0;i<v.length;i++)
         if(v[i].getAttribute && v[i].getAttribute('gr')==ve) q[ve][q[ve].length]=v[i];
    }

    for(i in q[ve])
    {


        // Если ищем див по id
        if(q[ve][i].id && q[ve][i].id==ps) ps = i;
        // Этот блок можно убрать, если не нужны кнопки "<" / ">"
        if(q[ve][i].style.display!='none')
        {
        if(ps=='next') ps=((i*1+1)==q[ve].length?0:i*1+1);
        if(ps=='prev') ps=((i-1)==(-1)?q[ve].length-1:i-1);
        }
$('#stat_'+i).empty();
    }
 
q[ve][ps].style.display='';

}
</script>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать находится ли DOM элемент в области видимости? phgrey Общие вопросы Javascript 4 22.03.2011 19:05
как найти и удалить массив из массива? FRIE Общие вопросы Javascript 8 14.03.2011 15:48
Помогите удалить элемент двумерного массива Dorsaj Общие вопросы Javascript 5 18.10.2010 18:49
Как получить второй дочерний элемент, или второй смежный libinstyle Events/DOM/Window 4 30.06.2010 20:41
Как узнать содержит ли DOM определенный элемент Ruslan Events/DOM/Window 8 12.03.2010 22:02