DEV Community


How to toggle attribute values using jQuery

Gabriel Alejandro López López
I’m a software engineer living in Cienfuegos, Cuba. I am a fan of programming, web development, and entrepreneurship. I’m also interested in technology and music.
Originally published at on ・1 min read

I just came across a very simple question on StackOverflow. In the end is how to toggle the value of an attribute using jQuery.

The long version

This is the explanatory version I created when the author of the question requested for an explanation of my original code. Most of the comments are obvious.

   var currentRows = $('thetextarea').attr('rows'); //obtain the current number of rows in the textarea
   var newRows; //declare a variable to hold the new number of rows
   if(rows == 1){ //if just one...
       newRows = 5; // it should become 5
       newRows = 1; //else, (not 1), become 1
   $('thetextarea').attr('rows', newRows); //assign the new value to the rows attribute of the textarea
Enter fullscreen mode Exit fullscreen mode

Short version version

My original answer was...

//short version, the one in the answer
   $('thetextarea').attr('rows',  $('thetextarea').attr('rows')==1?5:1);
Enter fullscreen mode Exit fullscreen mode

I've created a gist for this two versions.

The fancy version (new for me)

I still had the doubt if this could be done easier, and find the next way thanks to this answer:

   $('thetextarea').attr('rows',  function(index, attr){
       return attr = 1 ? 5 : 1;
Enter fullscreen mode Exit fullscreen mode

Just learnt a new thing today. I can sleep easy.

Discussion (0)