Обмен атрибутами элементов

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем indrikozver, 19 июн 2008.

  1. indrikozver

    indrikozver Гость

    Помогите пожалуйста где косяк запрятался!
    Задача состоит в следующем: есть таблица с элементами которые можно двигать вверх/вниз при нажатии на соответствующие кнопки (двигаются целиком строки <tr/>).

    Проблемы возникают только в IE там двигать можно до тех пор пока у каждого элемента не произойдет по одной перемене. После этого скрипт отваливается. Что с этим можно или нужно сделать. Вот код скрипта:
    [codebox]function elementSwap(id1, id2) {
    var el1 = document.getElementById(id1);
    var elt1 = el1.cloneNode(true);
    var el2 = document.getElementById(id2);
    var buf_id = '';
    var elt1_buf;
    var inp1;
    var inp2;
    var buf_str1 = '';
    var buf_str2 = '';

    if (el1 && el2) {
    el2.parentNode.insertBefore(elt1, el2);
    el1.parentNode.insertBefore(el2, el1);
    el1.parentNode.removeChild(el1);


    buf_id = elt1.id;
    elt1.id = el2.id;
    el2.id = buf_id;



    elt1_buf = elt1.cloneNode(true);

    buf_str1 = elt1.childNodes[0].childNodes[0].getAttribute('onclick');
    buf_str2 = el2.childNodes[0].childNodes[0].getAttribute('onclick');
    elt1.childNodes[0].childNodes[0].setAttribute('onclick', buf_str2);
    el2.childNodes[0].childNodes[0].setAttribute('onclick', buf_str1);

    buf_str1 = elt1.childNodes[0].childNodes[2].getAttribute('onclick');
    buf_str2 = el2.childNodes[0].childNodes[2].getAttribute('onclick');
    elt1.childNodes[0].childNodes[2].setAttribute('onclick', buf_str2);
    el2.childNodes[0].childNodes[2].setAttribute('onclick', buf_str1);

    buf_str1 = elt1.childNodes[2].childNodes[0].getAttribute('onclick');
    buf_str2 = el2.childNodes[2].childNodes[0].getAttribute('onclick');
    elt1.childNodes[2].childNodes[0].setAttribute('onclick', buf_str2);
    el2.childNodes[2].childNodes[0].setAttribute('onclick', buf_str1);

    inp1 = document.getElementById('ch_'+id1);
    inp2 = document.getElementById('ch_'+id2);

    buf_str = inp1.name;
    inp1.name = inp2.name;
    inp2.name = buf_str;
    }
    }[/codebox]


    Код кусочка страницы где проходят замены

    [codebox]<div id="suppl_list_pr59">
    <table>
    <tbody>
    <tr id="pr59_0">
    <td>
    <a onclick="move_down('pr59_0', 'pr59_1'); return false;" href="" class="moving"><img src="/img/btns/move_down.gif"/></a>  <a onclick="move_up('pr59_0', 'pr59_-1'); return false;" href="" class="moving"><img src="/img/btns/move_up.gif"/></a>
    </td>
    <td>
    <input type="checkbox" style="display: none;" checked="" value="26" name="pr59_suppl_arr[0]" id="ch_pr59_0"/>Folic Acid B12
    </td>
    <td>
    <a onclick="del_item('pr59_0'); return false;" href=""><img src="/img/del_btn_16.gif"/></a>
    </td>
    </tr>
    <tr id="pr59_1">
    <td>
    <a onclick="move_down('pr59_1', 'pr59_2'); return false;" href="" class="moving"><img src="/img/btns/move_down.gif"/></a>  <a onclick="move_up('pr59_1', 'pr59_0'); return false;" href="" class="moving"><img src="/img/btns/move_up.gif"/></a>
    </td>
    <td>
    <input type="checkbox" style="display: none;" checked="" value="27" name="pr59_suppl_arr[1]" id="ch_pr59_1"/>Iodomere
    </td>
    <td>
    <a onclick="del_item('pr59_1'); return false;" href=""><img src="/img/del_btn_16.gif"/></a>
    </td>
    </tr>
    </tbody>
    </table>
    </div>[/codebox]
     
Загрузка...
Похожие Темы - Обмен атрибутами элементов
  1. COrMiTzY
    Ответов:
    0
    Просмотров:
    718
  2. exchanger
    Ответов:
    0
    Просмотров:
    798
  3. VkDuty
    Ответов:
    11
    Просмотров:
    1.828
  4. Sangitam
    Ответов:
    3
    Просмотров:
    1.066
  5. YuryD
    Ответов:
    6
    Просмотров:
    1.454

Поделиться этой страницей