2013-05-29 44 views
0

我會如何去抓取表格中的前一個td元素以便在Ajax調用中更改它的值text獲取先前的td元素以在Ajax調用中操縱

這就是我到目前爲止。我認爲我正確地抓住td元素並將其放入變量中,但是我無法獲得提示,彈出td元素上的文本,我試圖改變它,但實際上我無法改變文本,米試圖做。

function ChangeStatus(id) { 
     var td = $(this).parent('td').prev(); 
     $.ajax({ 
      type: 'GET', 
      url: '@Url.Action("changeStatus","AgentTransmission")', 
      data: { id: id }, 
      dataType: 'json', 
      success: function (data) { 
       td.empty(); 
       td.html("Hold"); 
      } 
     }); 
    } 

編輯

這裏是我的工作兩個td元素。當用戶點擊Hold鏈接時,我希望能夠將前一個元素的文本從Waiting更改爲Hold

<td> 
Waiting 
</td> 
<td> 
<a href="/AgentTransmission/Details/17">Details</a>   
    <span> | </span> 
    <a href="javascript:void(0)" onclick="ChangeStatus(17)" >Hold</a> 
</td> 
<td align=center id=17> 
</td> 
+1

你能發佈你的HTML表格結構嗎?就目前而言,我們無法告訴你是否有正確的'td'。 – tymeJV

+0

如果使用html(),爲什麼使用empty()? html()替換任何內容 –

+0

剛剛發佈的HTML,thx! – NealR

回答

0

首先,父()只獲得第一個父,如果調用者在dom中更深,你將不會得到它。您應該使用父母(),但我會建議使用類,而不是標籤名稱,像這樣:

$(this).parents('td.myClass').prev(); 

您還可以使用:

console.log(myString); 

,而不是警報,你可以看到導致控制檯,使用Chrome或Firefox中的Firebug

希望它可以幫助

+0

我會如何改變'td'變量的值?這些都不起作用:'td.empyt()'或'td.html('Hold')' – NealR

+0

因爲我沒有使用類,所以刪除'td.myClass'效果很好。謝謝! – NealR

0

嘗試獲得了td這樣的:

var td = $(this).closest('td'); 
+0

無法讓這個工作。如果'td'元素不是'tr'中的最後一個,這是否工作? – NealR

+0

大聲笑實際上這工作..但它抓住了源'td'元素。所以基本上這個代碼:'var td = $(this).closest('td');'與這個'td.html('Hold')結合;'將'Hold'文本放在'td'元素中調用該函數,而不是前一個函數。 – NealR