如何检测表是否包含表?

时间:2013-06-13 06:15:48

标签: javascript html

我有多个表需要与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样式添加到“extra”类之后,它们是重叠的。所以我需要的是一个像下面这样的方法来检测这个表是否包含一个表。

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

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

1 个答案:

答案 0 :(得分: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) {