我正在尝试将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);
这也不起作用。有什么建议?感谢...
答案 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
方法更改其值。