2010-04-21 5 views
1

Je le code suivant:Comment supprimer un élément sans id

<%-- other tags --%> 
<table> 
    <tr width="100%"> 
    <td width="130" /> 
    <td id="BottomCell" width="100%" /> 
    </tr> 
    <tr> 
    <td/> 
    <td/> 
    </tr> 
</table> 
<%-- other tags --%> 

Il peut y avoir plus d'une table sur la page. Je veux le td avant que "BottomCell" soit enlevé (ou caché) quand la page est chargée. Comment puis-je faire cela avec javascript ou css?

Merci.

BTW, je suis en train de développer un WebPart Sharepoint qui sera mis sur une page. Le sur cette page, dont je n'ai pas le contrôle directement. Mais le WebPart devrait supprimer ceci tant qu'il apparaît sur la page.

+1

Nous avons besoin de plus amples informations. De quel contexte voulez-vous qu'il soit supprimé? Il y a plusieurs façons de le faire. – Matt

+1

Aussi, utilisez-vous jquery, prototype ou toute autre bibliothèque js? –

+1

si vous supprimez le premier '', vos lignes auront un nombre différent de colonnes ... qui ne seront plus valide html sans l'attribut 'colspan' – knittl

Répondre

4

Wow, revenir à l'essentiel après avoir utilisé un cadre est un travail difficile.

var element = document.getElementById('BottomCell').previousSibling; 
var parent = element.parentNode; 
parent.removeChild(element); 
+0

Si c'est le cas, alors vous n'avez pas appris les bases en premier lieu. ;) – Bob

+2

Non, c'est juste tout ce putain de frappe. –

+0

J'ai appliqué votre approche et cela fonctionne parfaitement. J'utilise le code pour l'événement window.onload. Il semble que le TR est supprimé après le rendu de la page. Donc, je vois des mouvements déchiquetés. Une idée sur la façon de résoudre ce problème? – Shuo

4

En jQuery:

$('#BottomCell').prev().detach(); 
+0

N'a pas essayé JQuery, mais je suppose que cela devrait fonctionner. Merci! :) – Shuo

1

@diodeus s'il n'y a que deux cellules de données qui serait acceptable, si vous souhaitez supprimer la première cellule de données quelle que soit cependant de nombreuses cellules sont situées dans cette ligne, vous pouvez faire quelque chose comme

var el = document.getElementById('BottomCell'); 
el.removeChild(el.parentNode.firstChild); 
1

Eh bien, en supposant que vous avez une seule table, alors vous pourriez faire quelque chose comme ça (en javascript):

var firstCell = document.getElementsByTagName('tr')[0].getElementsByTagName('td')[0]; 
firstCell.parentNode.removeChild(firstCell); 

Il obtiendrait la première cellule de la première ligne dans l'ensemble de l'arborescence DOM et r Emove cette cellule.

+0

bien qu'il ne soit pas nécessaire que ce soit le premier tr du document. – Shuo

1

En jQuery, je trouverais le parent et utiliser le sélecteur :first probablement

Questions connexes