Преобразование входных данных в текст в цикле

0

Поэтому я просматриваю 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>

который является идеальным, но мне нужно, чтобы некоторые из них заменили все входы текущими значениями.

Это вообще возможно?

  • 0
    api.jquery.com/val
  • 0
    Вы хотите заменить его в документе или только внутри HTML-содержания pHtml ?
Показать ещё 1 комментарий
Теги:
each

4 ответа

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>

  • 0
    Прекрасное спасибо, я не использовал ваш код точно, но это было, но это было основой моего решения.
0

Я считаю, что функция поиска - это то, что вы ищете:

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
$('#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

-1

Является ли <input> всегда единственной вещью в <td>? Если это так, вы можете просто установить HTML родительского элемента <input> (который является <td>) в качестве значения <input>. Что-то вроде этого:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню