Więc zapętam się przez HTML stołu tak, jak:

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

A jeśli konsola.log to zwraca:

   <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>

Który jest idealny, ale muszę jakaś wymienić wszystkie wejścia z aktualnymi wartościami.

Czy to w ogóle możliwe?

0
Dawid van der Hoven 2 grudzień 2013, 21:35

4 odpowiedzi

Najlepsza odpowiedź

Jeśli chcesz, aby stół HTML z wejściami wymieniono ich wartością, spróbuj czegoś takiego,

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

Lub w przypadku, gdy chcesz ręcznie zbudować tr z kodem,

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

Lub w przypadku, gdy chcesz go zastąpić w dokumencie, przejdź do tego,

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

Powyżej kodu zakłada '#result_'+formId jest identyfikator <table>

0
Mat J 2 grudzień 2013, 18:17

Czy <input> zawsze jest jedyną rzeczą w <td>? Jeśli tak, możesz po prostu ustawić HTML rodzica <input> (że jest <td>) jako wartość <input>. Coś takiego:

$("input").each(function () {
  $(this).parent().html($(this).val());
});
0
Mike 2 grudzień 2013, 17:44

Wierzę, że funkcja Znajdź jest tym, czego szukasz:

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>';
    });
0
Jeff Davis 2 grudzień 2013, 17:47
$('#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)
        }
    })
});

PRÓBNY

0
Udit Bhardwaj 2 grudzień 2013, 17:51