如有一字符串
var str="<table ><tr><td><input></td><td><input type=checkbox></td></tr></table>";如何从此字符串构造一个table对象,其内容和str中的一致。

解决方案 »

  1.   

    如果用JQuery的话,直接var obj = $(str); obj.appendTo('body');
    没有JQuery的话就用
    var t = document.createElement('table');
    var tr = document.createElement('tr');
    t.appendChild(tr);
    类似这样
      

  2.   

    document.getElementById('idXXXX').innerHTML=str;
    str会以HTML形式执行后变成idXX标签的子元素。eval("htmlStr");动态执行HTML的String代码。
      

  3.   

    好像不能直接把字符串转化为Dom对象
    感觉只能
    <div id="aa"></div>
    <script type="text/javascript">
    onload = function(){
    var str="<table ><tr><td><input></td><td><input type=checkbox></td></tr></table>";
    document.getElementById("aa").innerHTML = str;
    alert(aa.firstChild)
    }
    </script>
    等待高手!
      

  4.   

    晕,直接一个innerHTML就解决了
      

  5.   

    在jq中直接
    $('').append(str);就可以
    或者$('').html(str)js中innerHTML
      

  6.   

    没有直接方法,只能用innerHTML,或者一个一个创建。jquery里也是把字符串当innerHTML放到某一个临时div上,来生成DOM的。
      

  7.   

    L@_@K
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title> new document </title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="[email protected]" />
        <meta name="keywords" content="" />
        <meta name="description" content="" />
    </head>
    <body>
    <script type="text/javascript">
    <!--
    function CreateElementsByHtmlString(htmlString) {
        if (htmlString.length > 0)
        {
            var container = document.createElement("div");
            container.innerHTML = htmlString;
            return container.childNodes;
        }
    }var str="<table><tr><td><input></td><td><input type=checkbox></td></tr></table><ol><li>呵呵</li><li>哈哈</li></ol>";
    var elements = CreateElementsByHtmlString(str);var length = elements.length
    for (var i=0; i<length; i++)
    {
        document.body.appendChild(elements[0]);
    }
    //-->
    </script>
    </body>
    </html>
      

  8.   

    也可以解析字符串,解析为 Dom 树,然后调用 document.createElement 依次创建!
      

  9.   

    个人观点:JQuery 适用于快速开发,是不可多得的利器!但不适于 JS 初学者,过分依赖 JQuery 极易导致 JQuery 依赖症!
    初学者应以学习基础知识和思考方法为主!否则,即使得到了倚天屠龙,也只能用来砍怪切菜!
      

  10.   


    当然可以,但是你总要加入页面的dom里才能显示出来吧.例如:
    document.getElementById(body的id).innerHTML=str;
    jquery:
    $("#元素id").html(str);
      

  11.   


    方法1:
    用innerHTML<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>htmlElement.html</title>

        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="this is my page">
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
         window.onload = function () {
         var str = "<table ><tr><td><input></td><td><input type='checkbox'></td></tr></table>";
         document.body.innerHTML = str;
         };
        </script>  </head>
      <body>
      </body>
    </html>方法2:用createElement、appendChild<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>htmlElement.html</title>

        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="this is my page">
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
         window.onload = function () {    
         var tb = document.createElement("table");
         var tr = document.createElement("tr");
         var td = document.createElement("td");
         var text = document.createElement("input");
         //text.setAttribute("type", "text");
        
         var tr1 = document.createElement("tr");
         var td1 = document.createElement("td");
         var check = document.createElement("input");
         check.setAttribute("type", "checkbox");
        
         td.appendChild(text);
         tr.appendChild(td);
         td1.appendChild(check);
         tr1.appendChild(td1);
         tb.appendChild(tr);
         tb.appendChild(tr1);
         document.body.appendChild(tb);
         };
        </script>  </head>
      
      <body>
      </body>
    </html>方法3:用jquery的html()和$()函数
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>htmlElement.html</title>

        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="this is my page">
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
         window.onload = function () {
         var str = "<table ><tr><td><input></td><td><input type='checkbox'></td></tr></table>";
         $("body").html(str);
                    //or $("body").append($(str));
                    //or var tb = $("table"); var tr = $("tr"); ...
         };
        </script>  </head>
      <body>
      </body>
    </html>
      

  12.   

    如果单单是专为对象,可以采用eval
    String.prototype.strToObj = function() {
        return eval("(" + this + ")");
    };
    如果是为了在页面中显示,则直接获取父级DOM,使用innerHTML就可以
    或者像15楼一样创建Element 来实现。