本帖最后由 sunli555 于 2010-05-17 16:23:51 编辑

解决方案 »

  1.   

    很麻烦吗?就是复制完了的radio的name属性重定义似乎无效。
      

  2.   

    需求就是有一行(tr)html对象,里面包括了一些表单录入元素。然后最后是一个按钮,点此按钮达到新增加一行的效果。由于原先那行里面有radio对象,所以新增以后也有,radio对象是一组一组的,所以当name一样的时候认为是同一组的对象。于是乎,我新增的一行里面,点了下面的radio,上面原先的一行里面的radio的checked属性就全变成false了。然后,我就把每一个新增出来的radio的name值进行更改。更改完以后在IE8下面就不再互相影响了,但是在IE7下面还是会互相影响,就好像那个更改name值的操作没有执行一样。
      

  3.   

    重新create
      mytable.find("tbody:last-child").find("input:radio").each(function(){
              var newradio = document.createElement("input");
              newradio.type = "radio";
              newradio.name = =$(this).attr("name")+"a";
              ... ...
                                                                            });
      

  4.   

    虽然没有解决问题,但是给了我灵感。最终用replaceWith()解决了问题。以防有朋友遇到同样问题,特把解决后的代码写出来了。mytable.find("tbody:last-child").find("input:radio").each(function(){
       var oldname=$(this).attr("name");
       $(this).replaceWith("<input type='radio' class='checkbox' name='"+oldname+"a'>");
    });虽然最终我还是不知道为什么IE7下面认不出来更改name的操作,不过问题解决了,总比没有解决的好。