Ocultar div cuando no se recuperó ningún valor mysql

Encontré varias soluciones para ocultar divs cuando están vacíos pero no en relación con un valor recuperado de mysql.

<button class="platform_category" id="platform_', $platform['platform_id'],'_category"><a href="', $platform['platform_url'],'" target="_tab">', $platform['platform_category1'],'</a></button>

Jquery no oculta div cuando no hay datos en mysql-row porque cree que $platform['platform_category1'] es un valor, aunque ese es solo el código php para recuperar el valor de mysql en caso de que haya uno.

Para ocultar el código jquery, estoy usando esto: (si reemplazo el == con != se esconde)

    $(function() {
    $('.platform_category').each(function() {
        if ($(this).html() == "") {
             $(this).hide();
       }
    }); 
});

preguntado el 12 de junio de 12 a las 15:06

4 Respuestas

Botones con clase platform_category tienen <a> etiqueta como html interno, por lo que html() método no tiene ningún sentido aquí (siempre devolverá <a>). Intentar text() en lugar:

$('.platform_category').each(function() {
    if ($(this).text() == "") {
        $(this).hide();
    }
});

BUENA NOTA (Desde @Blazemonger): Es bueno usar el recorte de texto con $.trim() método:

if ($.trim($(this).text()) == "") {
    $(this).hide();
}

contestado el 23 de mayo de 17 a las 13:05

Podría querer $.trim() el .text() Sólo para estar en el lado seguro. - traficante de llamas

Yo usaría el filtro para comprobar el contenido de la .platform_category. Vea abajo,

$(function() {
   $('.platform_category').filter(function() {
       return $.trim($(this).text()) == '';
    }).hide();
});

Respondido el 12 de junio de 12 a las 16:06

El problema es que $('.platform_category') en realidad no está vacío, porque siempre hay una etiqueta de anclaje en el div.

Puede hacer esto de dos maneras, ya sea a través de PHP (el mejor) o mediante JavaScript

A través de PHP

   if ($platform['platform_category1'] != "") {
     <button class="platform_category" id="platform_', $platform['platform_id'],'_category">
        <a href="', $platform['platform_url'],'" target="_tab">',$platform['platform_category1'],'</a>   
      </button>

Si tienes que hacerlo a través de JavaScript

    $(function() {
    $('.platform_category').each(function() {
        if ($(this).find('a').html() == "") {
             $(this).hide();
       }
    }); 
});

Respondido el 12 de junio de 12 a las 16:06

$('.platform_category').each(function() {
    if ($.trim( $(this).text() )  ==  "") {
        $(this).hide();
    }
});

Respondido el 12 de junio de 12 a las 16:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.