如何通过Javascript更改以前TD中的值

时间:2012-07-27 13:34:46

标签: javascript jquery html html-table

点击时我有一个按钮运行一个函数,我希望前一个TD中的值从no变为yes。

HTML:

<tr class="odd">
  <td class="">13.00</td>
  <td class="">DDR</td>
  <td class="">No</td>
  <td class="">
    <div class="button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" onclick="javascript:paid(4);return false" href="#" "="" role="button" aria-disabled="false">
       <span class="ui-button-text">Paid</span>
    </div>
  </td>
</tr>

因此,当用户点击“付费”时,这称为.. Javascript:

function paid(iD) {       
    $.ajax({
        contentType: "application/json; charset=utf-8",
        type: "POST",
        url: "Paid",
        dataType: "json",
        data: "{ id:" + iD +"}",
        success: function (id) {
            //Here change value of previous TD to yes;

        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {               
        }
    });
};

有没有办法可以访问上一个td的html并更改它的值?

O并且还使按钮消失?

3 个答案:

答案 0 :(得分:1)

这是一种可行的方法。但是在这些事情之后你需要注意改变你的html:

$("span.ui-button-text").click(function(){
    var td = $(this).closest("td").prev();
    //do ajax here
});

这将允许您存储正确的td单元格,然后您可以在成功回调中引用它。例如:

td.html("Yes");

答案 1 :(得分:0)

HTML:

<td class="" id="paid">No</td>

使用Javascript:

document.getElementById("paid").innerHTML = "Yes";

答案 2 :(得分:0)

一种好方法是使用$ .ajax(..)的context属性来保存对您想要修改的前一个TD的引用。

例如:

$.ajax({
        ...
        context: prevTD, // specify the previous TD as context
        ...
        success: function (data) {
            // 'this' refers to the passed in context
            // so you can do 
            this.text('Yes');
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {               
        }
    });

要从您呼叫的地方获取上一个TD,您可以使用:

yourPaidButton.parents('TD').first().prev()