<script>
 $("table").each(function(){
     $table=$(this);
     $table.parent().parent().html($table.parent().html());   
     var $tc = $table.parent().addClass("j-resizeGrid"); 
</script><DIV style="OVERFLOW-X: hidden" class=page>
<DIV class=pageContent>
<DIV style="HEIGHT: 442px; OVERFLOW: auto" layoutH="33">
<TABLE class="table main" width=750 nowraptd="false">
<THEAD>
<TR>
<TH style="TEXT-ALIGN: center; WIDTH: 30px">序号</TH>
<TH style="TEXT-ALIGN: center; WIDTH: 400px">通知信息</TH>
</TR>
</THEAD>
</DIV>
</DIV>
</DIV>我的问题就是我想把<DIV class=pageContent>变成<TABLE>的父元素,并且为<DIV class=pageContent>添加多一个
j-resizeGrid样式类,然后移除<DIV style="HEIGHT: 442px; OVERFLOW: auto" layoutH="33">这一层,可我上面
那样写调试发现
$table.parent()没有 ,$table.parent().parent()也没有 $table.parent().parent().html()也没有,最后页面生成是
<DIV style="OVERFLOW-X: hidden" class="page">
<DIV class="pageContent">
<TABLE class="table main" width="750" nowraptd="false"><DIV class="pageContent">没有加入j-resizeGrid样式类,搞的我好混,高手讲解一下
在$table.parent().parent().html($table.parent().html()); $table会怎样,他的父元素是怎么样的  

解决方案 »

  1.   

      $table=$(this);
    这句是指定了一个对象指针,$table.parent().parent().html($table.parent().html());
    虽然table内容还在,但是绝来的对象被清空了。 $table.parent().addClass("j-resizeGrid");
    这句当然就不会批执行了,如果是想实现你原来的想法,原来两句换位置,加样式这一句加一个parent就行了
         var $tc = $table.parent().parent().addClass("j-resizeGrid"); 
        $table.parent().parent().html($table.parent().html());   
      

  2.   

    这不是解决的办法啊! 我下面$table还要用啊
      

  3.   

    $table已经改变了,改变一下逻辑吧
      

  4.   

    这样做$table.parent()也不会是<DIV class=pageContent>这个对象啊
    我的意思就是有没有办法把<TABLE class="table main" width=750 nowraptd="false">
    的父对象<DIV style="HEIGHT: 442px; OVERFLOW: auto" layoutH="33">改成<DIV class=pageContent>就是去掉中间一级不要用
    $table.parent().parent().html($table.parent().html());
    而我下面这样$table.parent()他根本不是<DIV class=pageContent>我下面还有一段是
    $table.wrap('<div class="grid"></div>')
    var $grid=$table.parent().html($table.parent());
      

  5.   

    1. 操作DOM的js代码写在对应的html代码之前,这本身就是一个错误
    2. 我不知道$table.parent().parent().html($table.parent().html());这句话的用意何在?对于页面的呈现,这句话一点用也没有,只是单纯的用相同的代码替换掉了原来的代码,致命碑缓存的$table指向的实际table对象被移出DOM树,所以你针对$table所进行的一系列操作都不会体现在页面上。
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8"/>
    <script src="jquery.js"></script>
    </head>
    <body>
    <div style="OVERFLOW-X: hidden" class=page>
    <div class=pageContent>
    <div style="HEIGHT: 442px; OVERFLOW: auto" layoutH="33">
    <table class="table main" width=750 nowraptd="false">
    <thead>
    <tr>
    <th style="TEXT-ALIGN: center; WIDTH: 30px">序号</th>
    <th style="TEXT-ALIGN: center; WIDTH: 400px">通知信息</th>
    </tr>
    </thead>
    </table>
    </div>
    </div>
    </div>
    <script>
    $("table").each(function(){
    $table=$(this);
    alert($table[0]);
    $table.parent().parent().html($table.parent().html());   
    alert($table[0]);
    var $tc = $table.parent().addClass("j-resizeGrid"); 
    });
    </script>
    </body>
      

  6.   

    1. 操作DOM的js代码写在对应的html代码之前,这本身就是一个错误
    2. 我不知道$table.parent().parent().html($table.parent().html());这句话的用意何在?对于页面的呈现,这句话一点用也没有,只是单纯的用相同的代码替换掉了原来的代码,致命碑缓存的$table指向的实际table对象被移出DOM树,所以你针对$table所进行的一系列操作都不会体现在页面上。
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8"/>
    <script src="jquery.js"></script>
    </head>
    <body>
    <div style="OVERFLOW-X: hidden" class=page>
    <div class=pageContent>
    <div style="HEIGHT: 442px; OVERFLOW: auto" layoutH="33">
    <table class="table main" width=750 nowraptd="false">
    <thead>
    <tr>
    <th style="TEXT-ALIGN: center; WIDTH: 30px">序号</th>
    <th style="TEXT-ALIGN: center; WIDTH: 400px">通知信息</th>
    </tr>
    </thead>
    </table>
    </div>
    </div>
    </div>
    <script>
    $("table").each(function(){
    $table = $(this);
    var $tc = $table.parent().addClass("j-resizeGrid"); 
    });
    </script>
    </body>