Ocultar div cuando no se recuperó ningún valor mysql
Frecuentes
Visto 272 veces
1
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();
}
});
});
4 Respuestas
2
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
1
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
0
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
-1
$('.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 jquery or haz tu propia pregunta.
Podría querer
$.trim()
el.text()
Sólo para estar en el lado seguro. - traficante de llamas