Using jquery remove() with id passed by variable. Possible?

This is the function

function deleteItem(id) {
    $.post("_asyncpage.php",
        {id:id},
        function (result) {
            if (result == true) {
                $('#'+id).remove();
            }
        }, "json"); 
}

So, to explain, the function receive an id, send to a page that execute random stuff on a db and return true/false.

The function inside check for result that can be true/false as said before. Если true, продолжайте удалять элемент dom, который соответствует переданному идентификатору.

БД обновлена ​​правильно, но .remove () не будет работать ... кто-то знает почему? : (

Ниже приведен пример структуры html. Таблица внутри TD должна быть удалена.

<td width="120" valign="top" id="13_02">
   <table cellspacing="0" cellpadding="0" class="tableProg" id="1">
   <tbody>
      <tr>
         <td colspan="3"><h4 style="margin: 0pt;">Title</h4></td>
      </tr>
      <tr>
         <td colspan="3">h. 13:35</td></tr><tr><td width="74"><span style="font-weight: bold; color: rgb(0, 102, 204);">Su</span>: TV</td>
         <td width="22"><a href="javascript:openEditItem('2010/08/24','1')"><img src="static/images/edit.gif"></a></td>
         <td width="22"><a href="javascript:deleteItem('1')"><img src="static/images/delete.gif"></a></td>
      </tr>
   </tbody>
   </table>
</td>
1
задан theCrius 25 August 2010 в 14:39
поделиться

4 ответа

Обновление: Судя по предоставленной вами дополнительной информации, проблема может быть связана с вашими идентификаторами. Недопустимо, чтобы идентификатор начинался с цифры. Это может вызвать проблемы.


Если ваш id, который вы передаете функции, уже имеет в начале #, то вам не нужно его конкатенировать.

Также, если ответ, который вы получаете, представляет собой строку, вам следует сравнить результат со строкой 'true'.

if (result == 'true') {...

2
ответ дан 2 September 2019 в 21:51
поделиться

Я бы проверил ваш результат . Вы возвращаете true как число (1)? или это строка при получении?

Поскольку ваш тип данных - json , значение result должно быть json-строкой или уже проанализированной объект , поэтому я держу пари, что этот

if (result == true) {

никогда не пройдет.

0
ответ дан 2 September 2019 в 21:51
поделиться

Выполняется ли $('#'+id).remove();?

Что произойдет, если вы выполните alert($(' #'+id).length)? Вы должны ожидать ответ > 0

Кроме того, каков тип результата? Попробуйте alert(typeof(result)); Это поможет вам определить правильное сравнение для вашей if проверки

0
ответ дан 2 September 2019 в 21:51
поделиться

Просто чтобы дать больше информации, это часть структуры, которую необходимо удалить с помощью jquery.

<td width="120" valign="top" id="13_02">
   <table cellspacing="0" cellpadding="0" class="tableProg" id="1">
   <tbody>
      <tr>
         <td colspan="3"><h4 style="margin: 0pt;">Title</h4></td>
      </tr>
      <tr>
         <td colspan="3">h. 13:35</td></tr><tr><td width="74"><span style="font-weight: bold; color: rgb(0, 102, 204);">Su</span>: TV</td>
         <td width="22"><a href="javascript:openEditItem('2010/08/24','1')"><img src="static/images/edit.gif"></a></td>
         <td width="22"><a href="javascript:deleteItem('1')"><img src="static/images/delete.gif"></a></td>
      </tr>
   </tbody>
   </table>
</td>
0
ответ дан 2 September 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: