js动态加载div innerHTML

原创 2012年03月25日 22:53:14

        最近遇到个innerHTML的问题,js动态加载div innerHTML,将div添加textarea元素(含非标准属性),并且表单在提交时采取将div innerHTML作为一个值提交到后台,再通过dom解析的方式提取出每个textarea具体数据;由于textarea数据是客户端输入,难免会遇到一些字符,dom是无法解析的,为了解决这个问题,提出的解决方案为在div数据提交到后台后,通过replaceall的方式将<textarea name="textarea1" dataid="dataid_1"></textarea>每个数据引用<![CDATA[]]>;但问题随之而来,如何替换?起初打算在每个<textarea name="textarea1" dataid="dataid_1">最后新增属性,然后按规则替换,例如:<textarea name="textarea1" dataid="dataid_1" specialchar="1">然后应用replaceall("specialchar="1">","><![CDATA["),并且将replaceall("</textarea>","]]></textarea>"),这样就解决了该问题;但在实际测试中,存在问题,每次在加载div innerHTML时候,textarea的非标准属性顺序都是在变化,textarea属性值会参与逻辑判断,并且不同的浏览器顺序显示也是不一样的;这样一来上述的实现方式就不可取了;最后是通过正则表达式来解决如下:

content = _content.replaceAll("</textarea>", "]]></data_input>");//content为innerHTML数据
     Pattern pat = Pattern.compile("<textarea(.+?)>");
     Matcher mat = pat.matcher(_content);
     String data = "";
     boolean flag = true;
     while(flag){
      if(mat.find()){
       data = mat.group(1);//获取textarea所有属性
       _content = _content.replaceFirst("<textarea.+?>", "<data_input "+data+"><![CDATA[");//每次将textarea替换为data_input
      }else{
       flag = false;
      }
     }

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JS脚本动态加载,以及加载完成后执行回调

document.getElementById("uccenter").innerHTML=data.ucString; var myDivScript = document.getEle...

动态加载外部JS文件

  • 2009-04-03 11:39
  • 947B
  • 下载

动态加载外部链接JS

面试题                                      ...

动态加载JS方法

要实现动态加载JS脚本有4种方法: 1、直接document.write     document.write(""); 2、动态改变已有script的src属性...

js动态加载

动态加载JS文件

最近做网上考试软件有个需求需要在页面上更改考试软件字典里的内容,同时更改完成之后要在页面中体现出来,也就是说不要重新载入界面(因为重新载入下,客户输入的信息就会被清空)。 说明:我们的网上考试软件是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)