0

我正在尝试将 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);

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

4

2 回答 2

0

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

取而代之的是,您可以使用 . 附加()函数这个:

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

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

于 2012-06-20T19:57:10.517 回答
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);

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

于 2012-06-20T19:57:51.083 回答