问题是这样,我用jq从服务端get到数据,然后动态生成html代码,写到页面上,本来是没有什么问题,可是每一行数据的第一列要求能点击,触发一个弹框事件,其实就是弹出一个层,然后上面显示更详细的数据我本来打算直接在第一列生成<a>标签,然后onclick事情触发一下就好,可是我发现,生成不出来,不知道为什么,各位给看一下,是我写的不对,还是这种方法不对以下是代码:
var chdobj = document.createElement("table");
var trobj = document.createElement("tr");
chdobj.insertBefore(trobj, null);
var tdobj = document.createElement("td");
 trobj.insertBefore(tdobj, null);
var brand = '<a onclick="dateleveltwo();">' + json.Table[i]["orderid"] + '</a>';
var link = document.createElement(brand);
 trobj.insertBefore(link,null);这种情况下,<a>标签声称不出来,我也用过innerHTML,就是tdobj.innerHTML(''<a onclick="dateleveltwo();">' + json.Table[i]["orderid"] + '</a>'');也是不行

解决方案 »

  1.   

    innerHTML一定是没有问题的,这等于重写html代码,如果你生成不出来,那就是那儿写错了,看一下错误信息 吧
      

  2.   

    一般来说是这样生成的,但是必须保证td已经存在了,也就是说先生成了td才能向td里加东西,或者在td里加上这些,和td一起生成也可以tdobj.innerHTML= ''<a onclick="dateleveltwo();">' + json.Table[i]["orderid"] + '</a>'';
      

  3.   

    innerHTML不是方法而是一个属性,要这样用
    tdobj.innerHTML = '<a onclick="dateleveltwo();">' + json.Table[i]["orderid"] + '</a>';
      

  4.   

    你说的情况今晚我也遇到了,搞了我老半天,上网也查了好久没找到自己想要的答案...逼不得已再次去膜拜了下JQ说明文档,关于动态生成的HTML的确不能直接触发事件,必须用live来绑定事件~
    以下是文档上关于live的说明:
    “这个方法跟传统的bind很像,区别在于用live来绑定事件会给所有当前以及将来在页面上的元素绑定事件(使用委派的方式)。比如说,如果你给页面上所有的li用live绑定了click事件。那么当在以后增加一个li到这个页面时,对于这个新增加的li,其click事件依然可用。而无需重新给这种新增加的元素绑定事件。”具体为什么要需重新给这种新增加的元素绑定事件...关于这方面希望有高手解答下。
      

  5.   

    tdobj.innerHTML= ''<a onclick="dateleveltwo();">' + json.Table[i]["orderid"] + '</a>'';