Использование jquery remove () с идентификатором, переданным переменной. Возможный? - PullRequest
1 голос
/ 25 августа 2010

Это функция

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

Итак, чтобы объяснить, функция получает идентификатор, отправляет на страницу, которая выполняет случайные вещи в БД, и возвращает true / false.

Функция внутри проверки на результат, который может быть истинным / ложным, как сказано выше. Если 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>

Ответы [ 4 ]

2 голосов
/ 25 августа 2010

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


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

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

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

0 голосов
/ 25 августа 2010

Просто чтобы дать больше информации, это часть структуры, которую нужно удалить с помощью 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 голосов
/ 25 августа 2010

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

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

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

.
0 голосов
/ 25 августа 2010

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

Так как ваш dataType равен json, значение result должно быть json string или уже проанализировано object, поэтому я готов поспорить, чтоэто

if (result == true) {

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...