2013-06-13 99 views
0

我有多個表需要嵌套的div如何檢測表是否包含表?

像這樣:

<table> 
<tr> 
    <td> 

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

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

然後,我得到的每一個表與下面的代碼:

VAR isert = inn.getElementsByTagName(「表「);

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解決。謝謝!

回答

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) { 
+0

感謝您的答覆。我對我的問題做了一些調整,以便更清楚。 CSS不應該改變,我必須使用JavaScript。 – Darklizard

+0

@Darklizard:好的,看我的更新。 –

+0

啊啊謝謝! getElementsByTagName真的很好用! – Darklizard

相關問題