0

我有多个表需要嵌套 div

像这样:

<table>
 <tr>
  <td>

   <table>
    <tr>
     <td>EEE</td>
     <td>EEE</td>
    </tr>
   </table>

  </td>
 </tr>
</table>

然后,我使用以下代码获取每个表:

var isert = inn.getElementsByTagName("table");

for(var i = 0 ;i<isert.length;i++)
{
    var div = document.createElement("div");
    var _t = isert[i];
    var parent = _t.parentNode;
    div.className = "extra";
    parent.replaceChild(div, _t);
    div.appendChild(_t);
    } 
}

所以表格变成:

<div class="extra">
<table>
     <tr>
      <td>

      <div class="extra">
       <table>
        <tr>
         <td>EEE</td>
         <td>EEE</td>
        </tr>
       </table>
      </div>

      </td>
     </tr>
    </table> 
</div>

但是,在我将 CSS 样式添加到“额外”类之后,它们会重叠。所以我需要一个像下面这样的方法来检测这个表里面是否包含一个表。

if( ! 'table' contains 'table'){
...adding the div...
}

我希望这可以通过纯 JavaScript 来解决。谢谢!

4

1 回答 1

2

我不知道你正在使用什么样的主题,但你可以想象用纯 CSS 解决这个问题

table { some theme style; }
table table { revert to default style; }

编辑

根据我在更新后的理解,您想将以下代码转换为不依赖 jQuery 的东西,对吗?

var curr = $(this); 
if(!curr.has('table').length) { 

getElementsByTagName在所有标签节点上都可用,并且只会产生子元素,因此您可以按如下方式进行检查:

if(!curr.getElementsByTagName('table').length) {
于 2013-06-13T06:17:47.763 回答