tonco
tonco

Reputation: 1311

Add javascript condition inside text variable

I have code working fine but I wanna simplify:

<script type="text/javascript">

   function RenderPager(items) {

      for (var i = 0; i < items.length; i++) {

         var li = "<li";

         if(i == 0){
            li += " class='first'";
         }

         li +=">" + i + "</li>";

         // do something else
      }
   }
</script>

I would like to have condition inline something like this:

   for (var i = 0; i < items.length; i++) {

       var li = "<li" + if(i == 0){ li += " class='first'" }; + ">" + i + "</li>";

       // do something else
   }

But this is not working and I tried everything but I don't know how to combine javascript condition in text variable. Is it possible?

Upvotes: 3

Views: 1320

Answers (1)

p.s.w.g
p.s.w.g

Reputation: 149020

You can use the conditional operator (?..:), also known as the ternary operator:

var li = "<li" + (i == 0 ? " class='first'" : "") + ">" + i + "</li>";

Also note, this could probably also be done using a little CSS with the :fist-child pseudo-class, but it's not supported by older versions of IE. See this compatibility chart:

li:first-child {
    /* applies only to the first <li> element in a list */
}

Upvotes: 6

Related Questions