Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > удаление елемента из DOM


Автор: lumentek 27.7.2010, 01:47
<table>
        <tr id="t1">
         <td>...</td>
         <td>...</td>
         <td>...</td>
         <td>...</td>
        </tr>   
         <tr id="t2">
         <td>...</td>
         <td>...</td>
         <td>...</td>
         <td>...</td>
        </tr>

</table>

Как удалить элемент с id=t2, то есть  чтобы строка полностью удалилась?

Автор: EmilRegis 27.7.2010, 05:33
Код

var tbd = d.getElementById(tableId).getElementsByTagName('TBODY')[0];
tbd.removeChild(d.getElementById('t1'));

Автор: lumentek 27.7.2010, 10:48
Это я знаю, меня интересует как это обстоит на jQuery?

Автор: нуп 27.7.2010, 10:52
remove();

Автор: ex3c 4.8.2010, 19:42
EmilRegis, вообще-то для pure-js есть .deleteRow()

lumentek
Код

$('#t2').remove();

Автор: lumentek 8.8.2010, 21:51
еще такой вопрос.
Например, уменя таблица сгенерирована яваскриптом. и когда я пытаюсь удалить только что сгенерированную строку функцией remove() ТО ничего не происходит. зато если перезугрузить страницу, то все работает. в чем может быть причина?

Автор: CruorVult 8.8.2010, 22:26
возможно remove() выполняется до отрисовки таблицы? 
код можно посмотреть.

Автор: lumentek 8.8.2010, 23:36
function delete_person_contact(value)
    {
       $(document).ready(function(){
       var id = "#"+value;
       $.post("/php/delete_contact.php",{str: id},function (data){
        $(""+id+"").remove();
         });
     });

Вообщем если страница загружена, то нужный контент удаляется. А вот если  контен динамически образуется скриптом после того как страница загружена, то он не удаляется.

Автор: CruorVult 9.8.2010, 00:16
когда выполняется delete_person_contact?
контент точно сформировался до вызова delete_person_contact?
 $(""+id+"").html(); что показывает

Автор: lumentek 9.8.2010, 00:45
ничего не показывает.
а вот  alert(id); показывает Id контакта, который нужно удалить.

еще заметил странную вещь. если четыре раза кликнуть то контент все-такиудаляется.

а вот как я вызываю обработчик на всякий случай
<img onclick="delete_person_contact(getElementById('pid_<?=$person_contact['id_person_contact'];?>').id);"

Автор: CruorVult 9.8.2010, 09:02
Код

delete_person_contact(getElementById('pid_<?=$person_contact['id_person_contact'];?>').id)

о ужос smile 
можно просто
Код

delete_person_contact('pid_<?=$person_contact['id_person_contact'];?>')


после асинхронного ответа:
Код

$.post("/php/delete_contact.php",{str: id},function (data){
        $(""+id+"").remove();
         });

переменная id не существет. Возвращайте с сервера person_id а потом формируйте id dom-елемента:
Код

$.post("/php/delete_contact.php",{str: id},function (data){
        $("#pid_"+data.person_id+"").remove();
         });

Автор: lumentek 9.8.2010, 12:27
спасибо. а как должен сформироваться контент  чтобы в переменной data.person_id хранилось нужное значение?

Автор: lumentek 9.8.2010, 13:33
Код

function delete_person_contact(value)
    {
       $(document).ready(function(){
       var id = "#"+value;
       $.post("/php/delete_contact.php",{str: id},function (data){
      //  alert(id);
        $("#pid_"+data+"").remove();
        alert(data);

         });
     });
    }

дата возвращает нужный ид. все равно та же фигня. 

Автор: CruorVult 9.8.2010, 13:47
проблема может заключатся в отсутствии объекта $("#pid_"+data+""). 
Просмотрите DOM(в Opera - Dragonfly, Mozilla - Firebug), и убедитесь что элемент существует.

Автор: lumentek 9.8.2010, 14:48
Вообще страности. проверил — объект создается. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)