C'est ma table -

 <table>
     <tr>
      <td>ABC</td>
     </tr>
     <tr>
      <td>&nbsp;</td>
     </tr>
 </table>

Et je veux supprimer cette ligne de tableau:

<tr>
   <td>&nbsp;</td>
</tr>

Ma sortie attendue est:

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

Est-ce possible ?? s'il vous plaît aidez-moi

0
Subhankar Dutta 16 nov. 2017 à 09:18

5 réponses

Meilleure réponse

Comme vous avez tagué votre question avec le tag php, je recommanderais d'utiliser une expression régulière.

Le motif \s*<tr>\s*<td>&nbsp;<\/td>\s*<\/tr> trouvera le tr avec un vide () td.

Pour tester et examiner l'expression régulière, vous pouvez jeter un œil ici: https://regex101.com/r/ ax6Xdg / 1

Ensemble, cela ressemblera à quelque chose comme ceci:

$table = "<table>
    <tr>
        <td>ABC</td>
    </tr>
    <tr>
        <td>&nbsp;</td>
    </tr>
</table>";

$pattern = "/\s*<tr>\s*<td>&nbsp;<\/td>\s*<\/tr>/";

var_dump( preg_replace( $pattern , "" , $table ) );

Cela produira quelque chose de très similaire à ceci:

string '<table>
    <tr>
        <td>ABC</td>
    </tr>
</table>' (length=60)
0
DKSan 16 nov. 2017 à 07:59

Vous pouvez le faire en utilisant la fonction JQuery .remove(). Vous pouvez le rechercher ici

Modifier: si vous souhaitez localiser cette balise spécifique, vous pouvez le faire en utilisant .next() lire ici, .find() lire ici, .parent() lire ici, .children lire ici

0
Red Bottle 16 nov. 2017 à 06:34

Ajoutez simplement id à votre tableau:

<table id="tableid">
         <tr>
          <td>ABC</td>
         </tr>
         <tr>
          <td>&nbsp;</td>
         </tr>
       </table>

Ce script trouve &nbsp;, s'il est trouvé, alors supprimez-le!

$('#tableid tr').each(function() {
    if ($(this).find('td').html()=='&nbsp;') $(this).remove();
});

Si vous voulez trouver du texte, puis le supprimer, remplacez html() par text()

$('#tableid tr').each(function() {
    if ($(this).find('td').text()=='ABC') $(this).remove();
});
0
helpdoc 16 nov. 2017 à 06:42

Lors du rendu du tableau, ajoutez une classe unique pour les lignes que vous souhaitez supprimer. Disons que la classe est: _rowToDelete, puis en utilisant jQuery, supprimez toutes les lignes qui ont cette classe.

Dans l'exemple ci-dessous, lorsque vous cliquez sur le bouton, les lignes sont supprimées, vous pouvez donc voir les modifications. Mais vous pouvez faire la même chose lors du chargement de la page si vous le souhaitez.

$(function() {
  $("#removeBtn").click(function() {
    $("._rowToDelete").remove() ;
  });
}) ;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
     <tr>
      <td>ABC 1</td>
     </tr>
     <tr class="_rowToDelete">
      <td>&nbsp;</td>
     </tr>
     <tr>
      <td>ABC 2</td>
     </tr>
     <tr class="_rowToDelete">
      <td>&nbsp;</td>
     </tr>
     <tr>
      <td>ABC 3</td>
     </tr>
     <tr class="_rowToDelete">
      <td>&nbsp;</td>
     </tr>
 </table>
 
 <a href="javascript:;" id="removeBtn">Remove</a>
0
Mario Rawady 16 nov. 2017 à 07:09

Vous devriez essayer ceci:

<table>
 <tr id="abc>
  <td>ABC</td>
 </tr>
 <tr id="remove">
  <td>&nbsp;</td>
 </tr>
<script>
 $('#remove').remove(); 
</script>
0
hasnain 16 nov. 2017 à 07:07
47322886