jQuery cambiando el estilo del elemento HTML


110

Tengo una lista en HTML

<div id="header" class="row">
    <div id="logo" class="col_12">And the winner is<span>n't...</span></div> 
    <div id="navigation" class="row"> 
        <ul id="pirra">
            <li><a href="#">Why?</a></li>
            <li><a href="#">Synopsis</a></li>
            <li><a href="#">Stills/Photos</a></li>
            <li><a href="#">Videos/clips</a></li>
            <li><a href="#">Quotes</a></li>
            <li><a href="#">Quiz</a></li>
        </ul>
    </div>  

cambia bien para mostrarse horizontalmente en el cambio de CSS

    div#navigation ul li { 
        display: inline-block;
    }

pero ahora quiero hacerlo con jQuery, uso:

    $(document).ready(function() {
  console.log('hello');
   $('#navigation ul li').css('display': 'inline-block');
});

pero no funciona, ¿qué tengo mal para diseñar mi elemento con jQuery?

Gracias


El problema fue causado por un error tipográfico. Los argumentos en las llamadas a funciones de JavaScript se separan con ,not :.
Quentin

Respuestas:


240

Utilizar este:

$('#navigation ul li').css('display', 'inline-block');

Además, como han dicho otros, si desea realizar varios cambios CSS a la vez, es cuando debe agregar las llaves (para la notación de objetos), y se vería así (si quisiera cambiar, digamos, 'background -color 'y' position 'además de' display '):

$('#navigation ul li').css({'display': 'inline-block', 'background-color': '#fff', 'position': 'relative'}); //The specific CSS changes after the first one, are, of course, just examples.

6
o: $('#navigation ul li').css({'display': 'inline-block'});- constantemente mezclo esos dos.
Blazemonger

1
@Blazemonger LOL, ni siquiera sabía que podías hacer eso, pero ahora que lo mencionas, eso 'sí' tiene sentido. Gracias por ampliar mis horizontes aquí.
VoidKing

Entonces parece mejor memorizar la versión con llaves, ya que puede adaptarse a uno o más atributos a la vez con la misma sintaxis;)
cladelpino

camel case también funciona, así que puedes usar .css ({backgroundColor: "#fff"}) - PD: odio las comillas dobles pero son más fáciles de ver en este comentario
danday74


14
$('#navigation ul li').css({'display' : 'inline-block'});

Parece un error tipográfico allí ... error de sintaxis :))


5

también puede especificar varios valores de estilo como este

$('#navigation ul li').css({'display': 'inline-block','background-color': '#ff0000', 'color': '#ffffff'});

3

Creo que también puede usar este código: y puede administrar mejor su clase css

<style>
   .navigationClass{
        display: inline-block;
        padding: 0px 0px 0px 6px;
        background-color: whitesmoke;
        border-radius: 2px;
    }
</style>
<div id="header" class="row">
    <div id="logo" class="col_12">And the winner is<span>n't...</span></div> 
    <div id="navigation" class="row"> 
        <ul id="pirra">
            <li><a href="#">Why?</a></li>
            <li><a href="#">Synopsis</a></li>
            <li><a href="#">Stills/Photos</a></li>
            <li><a href="#">Videos/clips</a></li>
            <li><a href="#">Quotes</a></li>
            <li><a href="#">Quiz</a></li>
        </ul>
    </div>
 <script>
    $(document).ready(function() {
$('#navigation ul li').addClass('navigationClass'); //add class navigationClass to the #navigation .

});
 </script>

0

cambiando de estilo con jquery

Prueba esto

$('#selector_id').css('display','none');

También puede cambiar varios atributos en una sola consulta

Prueba esto

$('#replace-div').css({'padding-top': '5px' , 'margin' : '10px'});
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.