jQuery将值从textarea传递到特定tr中的特定td

时间:2012-06-20 19:47:23

标签: jquery jquery-ui

我正在尝试将textarea值从对话框窗口传递回原来的td位置。

这就是tbody的样子:

<tbody class="facttbody">
    <tr class="factrow">
         <td>
            <input type="text" class="facttext" value="Replace this value" />
         </td>

以下是对话框窗口中的替换按钮:

buttons: {
    "Replace": function (){
        var dialogtxt = $(".factlargetextarea").val();

        $(".factdata > tbody > tr:eq($(".facttext").index(this)) > td:nth-child(5)).html(dialogtxt);
        $(this).dialog("close");

这种方法的工作原理是textarea值返回到该td,但它也从td中删除了输入标记。我也试过这个:

$(".factdata > tbody > tr:eq($(".facttext").index(this)) > td > input:nth-child(4)).html(dialogtxt);

这也不起作用。有什么建议?感谢...

2 个答案:

答案 0 :(得分:0)

它肯定会删除 td 中的输入类型,因为你在那里使用了 .html(),即重写该元素的html。

而不是那样,你可以使用。append()函数:

  $(".factdata > tbody > tr:eq($(".facttext").index(this)) > td:nth-child(5)).append(dialogtxt);

它会在输入元素之后将数据附加在 td 中。

答案 1 :(得分:0)

如果 -

$(".factdata > tbody > tr:eq($(".facttext").index(this)) > td:nth-child(5)).html(dialogtxt)

正在改变'td'的全部内容,然后改为 -

$(".factdata > tbody > tr:eq($('.facttext').index(this)) > td:nth-child(5)).find("input[type='text']").val(dialogtxt);

应该更改文本框的值。第二个语句只是找到td中的文本框,然后使用val方法更改其值。