2010-07-10 6 views
1

Je voudrais supprimer le tableau suivant de la page avec Jquery en ciblant le texte suivant "Pour ajouter les éléments ci-dessus à votre panier".supprimer table qui contient certain texte

J'ai essayé ceci mais n'a pas fonctionné comme prévu il enlève un parent différent td. Vous ne savez pas comment cibler ce td uniquement.

$("* :contains('To add the above items to your cart')").closest('td').remove();

<td colspan="11" class="colors_backgroundlight" align="right"> 
<span>To add the above items to your cart, click the "Add" checkboxes then click "Add To Cart" &gt;&gt;&gt;</span> <input type=submit value="Add To Cart" onclick="refineResults=false;" name="checkboxes_mode_submitbtn" 

Répondre

7

Vous pouvez le faire comme ceci:

$("span:contains('To add the above items to your cart')").closest('td').remove(); 

Tout parent également contenir le texte, car il est dans un élément enfant. Vous devez être un peu plus précis sur ce que contient le texte et déplacez-vous à partir de là ... sinon il trouvera également tous les parents.

Ou, pour être très précis, mais probablement surpuissant:

$("span:contains('To add the above items to your cart')").filter(function() { 
    return this.innerHTML.indexOf('To add the above items to your cart') === 0; 
}).closest('td').remove(); 
+0

Le premier fonctionne comme prévu, mais je pense que j'aime le second encore mieux parce qu'il garantit qu'il enlèvera le droit td. Les deux fonctionnent mais dans la seconde vous avez "Ajouter" au lieu de "ajouter" – user357034

+0

@ user357034 - Woops, tapé manuellement que dans ... corrigé le boîtier :) –

+0

Merci pour l'aide !!! Parfois, nous obtenons juste un bloc et ne pouvons pas comprendre les choses simples. Et oui que td était imbriqué. – user357034

1

Retirez la table ou tout simplement la cellule de table ... enlevant juste la cellule cassera votre mise en page de table?. Essayez cette place (pour effacer la cellule du tableau)

$("span:contains('To add the above items to your cart')").empty(); 

Edité ci-dessus, Nick a raison, il va briser les cellules imbriquées, la mise à jour ci-dessus ne sera pas.

+0

celui-ci j'ai déjà essayé et n'a pas fonctionné comme prévu. – user357034

1

Pourquoi ne pas utiliser simplement:

$("td:contains('To add the above items to your cart')").remove();​ 
+0

Dans le cas de tables imbriquées, cela casserait ... un ' 'imbriqué est beaucoup moins probable :) –

+0

mais il n'a pas mentionné que le texte sera dans une durée. C'est peut-être un exemple ... – galambalazs

+0

@galambalazs - Je parierais que c'est son code réel ... c'est un "exemple" assez compliqué :) –

0

Outre les réponses qui traitent le problème exact, vous pouvez modifier votre code html en ajoutant une classe pour cette période et de la cible qu'au lieu ..

de sorte que le

<td colspan="11" class="colors_backgroundlight" align="right"> 
<span>To add the above items to your cart, click the "Add" checkboxes then click "Add To Cart"... 

pourrait devenir

<td colspan="11" class="colors_backgroundlight" align="right"> 
<span class="removable">To add the above items to your cart, click the "Add" checkboxes then click "Add To Cart"... 

et ciblée avec

$(".removable").closest('td').remove(); 

ou pour des scénarios plus complexes où vous pourriez avoir des règles différentes pour le retrait des nœuds ..

$(".removable:contains('To add the above items to your cart')").closest('td').remove(); 
Questions connexes