2013-05-22 3 views
0

Как использовать jQuery для очистки HTML-кода элемента <td>? У меня есть изображение, которое при нажатии вызывает вызов Ajax в базу данных. В функции success вызова ajax я хочу очистить конкретный элемент <td>, в котором находится этот рис и заполняется возвращаемыми результатами. Этот pic находится в сетке, которая будет содержать несколько кликов, которые имеют одинаковые функциональные возможности, поэтому я хочу убедиться, что я просто очищаю элемент <td>, из которого пришел вызов.Очистить HTML внутри ячейки таблицы

EDIT

Вот моя последняя попытка

 $('.checkErrors').click(function() { 
      $.ajax({ 
       type: 'GET', 
       url: '@Url.Action("GetErrors","AgentTransmission")', 
       data: { term: $(this).attr('id') }, 
       dataType: 'json', 
       success: function (data) { 
        alert("success"); 
        $("td", this).empty(); 
       } 
      }); 
     }); 

Это HTML (ж/Razor синтаксиса, как это со страницы ASP MVC) вызов происходит из

<td align=center [email protected]> 
     @if(item.RecordStatus.Equals("E")) 
     { 
      <img src="@Url.Content("~/Content/images/magnify.gif")" class="checkErrors" [email protected] alt="Program Details" /> 
     } 
    </td> 
+0

'$ (это) .html ('');' – j08691

ответ

2

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

$("img").click(function() { 
    //save the element that contains the image 
    var td = $(this).parent(); 
    $.ajax({... 
    success: function(data) { 
     //use the saved element 
     td.html(''); 
    } 
    }); 
}); 
+0

Это сработало отлично, спасибо! – NealR

+0

Интересно, однако, что вы не можете получить доступ к '$ (this) .parent()' изнутри вызова 'success'. Знаете ли вы, почему необходимо поместить элемент в переменную 'td', чтобы впоследствии изменить/обработать? – NealR

+1

'this' - забавная тема в JavaScript. Каждый раз, когда выполняется функция, 'this' устанавливается на определенное значение. jQuery намеренно устанавливает его в цель события в функции обратного вызова события щелчка. Я не уверен, что он установлен в обратном вызове успеха, но он определенно будет настроен на что-то другое (или неопределенное). Вы можете прочитать эту статью: http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/ – JeffB

0

$(this).closest("td").empty() Что вы ищете?

+1

Это ответ или вопрос? – undefined

+0

lol nope, который очистил всю сетку. Я думаю, что это близко к – NealR

+0

Ну, не совсем так. Вы должны работать с селектором в соответствии с текущим td. – gustavohenke

0
var td = clickedImg.parentNode; 
td.removeChild(clickedImg); 
td.innerHTML = newText; 
Смежные вопросы