jQuery changeant le style de l'élément HTML

110

J'ai une liste sur 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>  

il change bien pour s'afficher horizontalement lors du changement CSS

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

mais maintenant je veux le faire avec jQuery, j'utilise:

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

mais ne fonctionne pas, qu'est-ce que j'ai de mal à styliser mon élément avec jQuery?

Merci

manuelBetancurt
la source
Le problème a été causé par une faute de frappe. Les arguments dans les appels de fonction JavaScript sont séparés par ,not :.
Quentin

Réponses:

240

Utilisez ceci:

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

De plus, comme d'autres l'ont indiqué, si vous voulez apporter plusieurs modifications css à la fois, c'est à ce moment que vous ajouterez les accolades (pour la notation d'objet), et cela ressemblerait à quelque chose comme ça (si vous vouliez changer, disons, 'background -couleur 'et' position 'en plus de' affichage '):

$('#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.
VoidKing
la source
6
ou: $('#navigation ul li').css({'display': 'inline-block'});- Je mélange constamment les deux.
Blazemonger
1
@Blazemonger LOL, je ne savais même pas que tu pouvais faire ça, mais maintenant que tu le dis, ça a du sens. Merci d'élargir mes horizons ici.
VoidKing
Il semble préférable de mémoriser la version à accolades, car elle peut s'adapter à un ou plusieurs attributs à la fois avec la même syntaxe;)
cladelpino
camel case fonctionne aussi pour que vous puissiez utiliser .css ({backgroundColor: "#fff"}) - PS je déteste les guillemets doubles mais ils sont plus faciles à voir dans ce commentaire
danday74
21
$('#navigation ul li').css('display', 'inline-block');

pas un deux-points, une virgule

Jakub Michálek
la source
14
$('#navigation ul li').css({'display' : 'inline-block'});

Cela semble une faute de frappe là-bas ... erreur de syntaxe :))

Suresh Atta
la source
5

vous pouvez également spécifier plusieurs valeurs de style comme celle-ci

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

Je pense que vous pouvez également utiliser ce code: et vous pouvez mieux gérer votre classe 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>
Pedram Shabani
la source
0

changer de style avec jquery

Essaye ça

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

Vous pouvez également modifier plusieurs attributs dans une seule requête

Essaye ça

$('#replace-div').css({'padding-top': '5px' , 'margin' : '10px'});
Aime Kumar
la source