2012-01-30 182 views
3

我動態創建了表中的類x的div。我如何用JavaScript抓住這個div的表父並給它一個特定的類?獲取元素的表父

傳遞tr和td父節點沒有工作。有任何想法嗎?

+2

因爲你的問題已經回答了,我就發表評論說你的劇本是proabably不知道''之間''和''

在parentNode鏈。 Broswers隱式插入它。 – ori2012-01-30 16:07:01

回答

3

如果你有jQuery,這很容易。如果你的HTML是這樣的:

<table> 
    <tr><td><div class="mydiv">hi</div></td></tr> 
</table> 

然後,你可以這樣說:

$('div.mydiv').closest('table').addClass('someclass'); 

closest功能在DOM樹中上升,直到達到你給的選擇(相匹配的元素在這種情況下,table)。

6

假設不涉及庫。

function getNearestTableAncestor(htmlElementNode) { 
    while (htmlElementNode) { 
     htmlElementNode = htmlElementNode.parentNode; 
     if (htmlElementNode.tagName.toLowerCase() === 'table') { 
      return htmlElementNode; 
     } 
    } 
    return undefined; 
} 

var table = getNearestTableAncestor(node); 
if (table) { 
    table.className += ' certain'; 
} 
0

假設已經插入到DOM樹中的新div的,你可以使用jQuery:

$(div_node).parents('table')[0].addClass('certain_class'); 

裸JavaScript可以做類似的事情,但你必須寫一個循環來遍歷了每.parentNode,測試,如果它是一個表,等等

0

使用jQuery如果你的HTML是這樣的:

<table> 
    <tr><td><div class="divClass">Content</div></td></tr> 
</table> 

然後你可以調用父表:

$('div.divClass')。parent();

下面的代碼會給你的表的HTML:

警報($( 'div.divClass')父()HTML());

可以使用,只要你想$('div.divClass').parent(); ...

乾杯!