2012-06-20 65 views
0

我试图从对话框窗口将textarea值传递回其原始td位置。jQuery将值从textarea传递到特定tr中的特定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

是的我知道,我有一个变量= $(“。facttext”)。index(this),我只是没有把它放在那里。 – user1288560

回答

0

它一定会删除输入型TD里面,因为你使用的.html()该元素存在,即改写HTML。

取而代之,您可以使用。 append()功能这样的:

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

它将把数据追加在TD,输入元件之后。

+0

如果我想将它放入该td的输入元素中,该怎么办? – user1288560

+0

使用$('。facttext')。val(dialogtext);它会改变输入元素的值。 –

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方法更改它的值。

+0

这样做!我正在尝试做某种“输入:第n个孩子(4)”,但我正在吠叫错误的树。非常感谢!! – user1288560

+0

优秀!高兴它的工作。如果你能接受答案,如果它有帮助,我将不胜感激。 :) – ipr101