将输入值应用于其所有td innerhtml

时间:2012-01-07 10:01:31

标签: javascript jquery input innerhtml html-table

是否有可能在内部输入时更改所有td的innerhtml,我的意思是获取输入的值并将其应用于它的td innerhtml,例如,这里是表及其输入内部:

<table>
 <tr>
  <td><input value="test" /></td>
  <td>123</td>
 </tr>
</table>

将其改为:

<table>
 <tr>
  <td>test</td>
  <td>123</td>
 </tr>
</table>

对于所有td和输入值而不应用id和类?!请注意td innerhtml没有改变:)谢谢大家的帮助! ;)

3 个答案:

答案 0 :(得分:5)

这很简单。

首先命名您的表(以便轻松找到它)。

<table id="the_table">
 <tr>
  <td><input value="test" /></td>
 </tr>
</table>

然后你可以这样做:

$('#the_table td input[type="text"]').each(function() {
  var val = $(this).val();
  $(this).parent('td').html(val);
});

Live demo

说明:

  1. 查找此特定表格中<td>内的所有输入。

  2. 每个输入:

    2.1从输入中检索值

    2.2查找作为<td>标记的输入的第一个父级并将其innerHTML设置为该值

答案 1 :(得分:4)

是的,你可以这样做:

$('table td:has(:input:only-child)').each(function () {
    $(this).html($(':input', this).val());
});

假设input中只有td。如果不是这种情况,请删除:only-child

table td:has(:input:only-child)

的说明

它说,在td中选择tableinput为唯一的孩子。

您可以在此处进行测试:http://jsfiddle.net/eydtw/

更新:取input而非hidden

$('table td:has(input[type!="hidden"])').each(function () {
    $(this).html($('input[type!="hidden"]', this).val());
});

http://jsfiddle.net/eydtw/1/

或:选择input text

$('table td:has(input:text)').each(function () {
    $(this).html($('input:text', this).val());
});

http://jsfiddle.net/eydtw/3/

答案 2 :(得分:1)

$.each($('table td'),function(){

    if($(this).children().length !=0)
    {

        var temp = $($(this).children()[0]).val();
        $(this).html(temp);

    }

})