从innerHTML获取textarea数据

时间:2014-01-07 22:41:17

标签: javascript html innerhtml

是否有可能在收集整套innerHTML数据时获取数据?

这是我的JS代码的一部分。

var css = document.getElementById('SETinfo').innerHTML;
var num = parseInt(document.getElementById('stepNum_count').value);
var name = document.getElementById('step_name_'+id).value;
var desc = document.getElementById('step_desc_'+id).value;
  css += "<div id='new_step_num_"+num+"'>";
  css += "<input type='hidden' name='new_VW_step[]' value='"+id+"'>";
  css += "<div class='step_contain'><div class='step'>";
  css += "<div class='step_circle'>";
  if(num < 10)
    {
  css += "<div class='step_num'>"+num+"</div>";
    }
  else
    {
  css += "<div class='step_num' style='left:8px;'>"+num+"</div>";
    }
  css += "</div>";
  css += "<div class='step_name'>"+name+"</div>";
  css += "<div class='step_divider'> </div>";
  css += "<textarea class='step_detail' name='step_desc_[]'>"+desc+"</textarea>";
  css += "</div> </div>";
  css += "</div>";

document.getElementById('SETinfo').innerHTML = css;
num = num + 1;

一切正常,减去textarea,没有收集/选择。

这是一个JSfiddle,简化了我正在尝试做的事情。请注意,当您在textarea中输入文本时,单击该按钮时不会继续执行该操作。 http://jsfiddle.net/MepG5/

3 个答案:

答案 0 :(得分:0)

它不起作用,因为您尝试将标记添加到 innerHTML。 var css = document.getElementById('SETinfo').innerHTML;正常工作。使用entities:

var css = document.getElementById('SETinfo').innerHTML;
var num = parseInt(document.getElementById('stepNum_count').value);
var name = document.getElementById('step_name_'+id).value;
var desc = document.getElementById('step_desc_'+id).value;
  css += "&lt;div id='new_step_num_"+num+"'&gt;";
  css += "&lt;input type='hidden' name='new_VW_step[]' value='"+id+"'&gt;";
  css += "&lt;div class='step_contain'&gt;&lt;div class='step'&gt;";
  css += "&lt;div class='step_circle'&gt;";
  if(num < 10)
    {
  css += "&lt;div class='step_num'&gt;"+num+"&lt;/div&gt;";
    }
  else
    {
  css += "&lt;div class='step_num' style='left:8px;'&gt;"+num+"&lt;/div&gt;";
    }
  css += "&lt;/div&gt;";
  css += "&lt;div class='step_name'&gt;"+name+"&lt;/div&gt;";
  css += "&lt;div class='step_divider'&gt; &lt;/div&gt;";
  css += "&lt;textarea class='step_detail' name='step_desc_[]'&gt;"+desc+"&lt;/textarea&gt;";
  css += "&lt;/div&gt; &lt;/div&gt;";
  css += "&lt;/div&gt;";

document.getElementById('SETinfo').innerHTML = css;
num = num + 1;

答案 1 :(得分:0)

尝试

   var textarea = $('textarea').val();

然后代替

css += "<textarea class='step_detail' name='step_desc_[]'>"+desc+"</textarea>";

css += textarea;

答案 2 :(得分:0)

好的,我想出了如何解决这个问题。创建每个文本区域时,我使用数字计数器分配唯一ID,然后计算到目前为止创建的行数,收集值,添加html,然后根据数字计数器重新填充每个文本区域中的数据。如果有人关心看到实际的代码,我可以更新JSfiddle。