将输入转换为循环中的文本

时间:2013-12-02 17:35:36

标签: javascript jquery each

所以我循环遍历表格的html:

jQuery('#result_'+formId+' tr').each(function() {
        pHtml += '<tr>';
        pHtml += jQuery(this).html();
        pHtml += '</tr>';
    });

如果我在console.log中返回:

   <tr>
      <td></td>
      <td><label for="CashTotal_8">Cash Total:</label></td>
      <td><label for="AverageRate_8">Average Rate:</label></td>
      <td><label for="CashMonthTotal_8">Cash Per Month Total:</label></td>
   </tr>
   <tr>
      <td><label>Total:</label></td>
      <td><input class="form-control validate-num" id="CashTotal_8" placeholder="0.00" disabled="disabled" type="text"></td>
      <td><input class="form-control validate-num" id="AverageRate_8" placeholder="0.00" disabled="disabled" type="text"></td>
      <td><input class="form-control validate-num" id="CashMonthTotal_8" placeholder="0.00" disabled="disabled" type="text"></td>
   </tr>

这是完美的,但我需要一些如何用当前值替换所有输入。

这一切都可能吗?

4 个答案:

答案 0 :(得分:1)

如果您希望表格html的输入替换为其值,请尝试使用

var pHtml=$('#result_'+formId).clone().find("input").replaceWith(function()
      {
          return $("<span></span>").text($(this).val()); 
      }).end().html();

或者如果您想使用代码手动构建tr

jQuery('table tr').each(function() {
    pHtml += '<tr>';
    pHtml += jQuery(this).clone()
                         .find("input")
                         .replaceWith(function(){
                                                  return $(this).val();
                                                }).end().html();
    pHtml += '</tr>';
});

或者如果您想在文档中替换它,请使用此

$('#result_'+formId+' input').replaceWith(function()
       {
            return $("<span></span>").text($(this).val()); 
       });

以上代码假设'#result_'+formId<table>

的ID

答案 1 :(得分:0)

$('#result_'+formId+' tr').each(function() {

    $(this).children('td').each(function(){

        if($(this).children('input').length>0){

            var value=$(this).children('input').val();
            $(this).empty().html(value)
        }
    })
});

DEMO

答案 2 :(得分:0)

我相信你正在寻找的是find函数:

jQuery('#result_'+formId+' tr').each(function() {
        pHtml += '<tr>';
        var child = jquery(this).find('input');
        if (child.val()) {
            var current = child.html();
            var newText = jQuery(this).html().replace(current, child.val()); 
            pHtml += newText;
        }
        else {
            pHtml += jQuery(this).html();
        }
        pHtml += '</tr>';
    });

答案 3 :(得分:-1)

<input>中的<td>始终是唯一的东西吗?如果是这样,您只需将<input>的父级(即<td>)的HTML设置为<input>的值即可。像这样:

$("input").each(function () {
  $(this).parent().html($(this).val());
});