Difference between prop and attr in jquery with example


Published on 09 February 2023


Difference between prop and attr in jquery with example

Attributes and properties in jQuery

In programming languages, properties are attributes that can be easily accessed and changed at any time. In JavaScript, properties are also known as methods. Properties are similar to methods in that they can perform certain tasks and can be used to build complex applications. Methods are accessed using the dot operator, and both properties and methods are inherited by child elements. In this paper, we will compare properties to attributes and how they work in jQuery.

Attributes and Properties share a lot of similarities; they both have the ability to perform tasks at runtime and can be used to build complex applications. However, there are some notable differences between them:

  • Attributes give us additional information about an element or tag that is included in the HTML. When we get or modify it we refer to the original value or state.
  • Properties are characteristics of a particular instance of that tag in the DOM. When we obtain or modify them we are making reference to the current value or state.

Attributes are constant and can't be changed, whereas properties can be changed at any time. Additionally, setting attributes changes the value immediately whereas changing a property's value requires a script refresh. Both attributes and properties are accessed with the dot operator.

How user information is stored and retrieved by your code

When creating a new web application, it's crucial to understand how user information is stored and retrieved by your code.

For example, when creating an online login page, you need to ensure that all user information is stored securely. This is done through properties in jQuery, which are set through attributes in JavaScript. To change the way an application stores and retrieves user data, you must first understand how those actions work. Storing and retrieving data is handled by properties using attribute syntax, which works identically in JavaScript as it does in C# or Java. Developers can quickly incorporate new web applications without having to rewrite all of the code that handles user data management.

Attributes provide a way for developers to implement repeatable patterns for storing and retrieving user data.

For example: updating the date a user logged in or updating a user's age whenever he changes his age on his profile page. Attributes are much safer than directly setting values for user data through code; there's no need to directly reference user data when setting attributes. This avoids issues where values have been directly set for an attribute through code; an attribute could incorrectly reference old data when compared to new data.

The basics of working with attributes in JavaScript are pretty similar to working with properties in other languages like C# or Java. Both attributes and methods have the ability to do different things at runtime, they're accessible via the dot operator wherever they're used in your code. Since methods aren't available in TypeScript or Swift, working with attributes in those languages requires using a library like jQuery instead. When compared to working with attributes in those other languages, working with attributes in jQuery is relatively easy due to its familiarity for developers already familiar with JavaScript.

Working with attributes vs working with properties

When comparing working with attributes vs working with properties, it's helpful to think about how each one works within an application context vs the global scope of your codebase. Attributes work well when applied within an application context since they can't be modified afterwards- unlike methods which can be modified at any time. While this makes sense when thinking about application contexts, it makes sense when thinking about code contexts as well since modifying code after it's been compiled is just as easy as modifying it after it's been deployed into a web environment or application container framework such as .NET or ASP .NET .

When comparing values between applying to an application context vs a code context, applying to a code context is generally less risky since modifying modified code has far more negative ramifications than modifying modified application contexts .

The comparison between attributes vs properties is useful for understanding how each one works within an application context vs the global scope of your codebase- making sure values aren't changed twice from unintended sources . Setting appropriate property values on objects or users helps secure your User Interface (UI). Additionally, implementing patterns like storing & retrieving data using attributes reduces repetitive tasking by your code base while also reducing the number of objects needing managed by your code base.

prop and attr jQuery difference

In the following example we will check the basic difference between attributes and properties in JQuery:

    <script>
       $(document).ready(function(){
         console.log($("#example").attr("value"));//Attributes refer to the original value
         console.log($("#example").prop("value"));//Properties refer to the current value
         console.log('Changing the input value to Mike:');
         $('#example').val('Mike');
         console.log($("#example").attr("value"));
         console.log($("#example").prop("value"));
         
         console.log($("#my_link").attr("href"));
         console.log($("#my_link").prop("href"));
         
         console.log($("#my_link").attr("target"));
         console.log($("#my_link").prop("target"));
       });
    </script>

Try it Yourself

Set attribute and property jQuery value

In the following example we will check how attributes and properties work in JQuery:

   <script>
       $(document).ready(function(){
         //Saving in a url variable the value of the attribute
         var url = $("#my_link").attr("href");
        console.log('My link is '+url);
         //Set the a attribute to target="_blank"
         $("#my_link").attr("target","_blank");
         //Apply for id example the attributes type text and value Mike
         $("#example").attr({
           type:"text",
           value:"Mike"
          });
         console.log('Attribute value is');
         console.log($("#example").attr("value"));
         console.log('Property value is');
         console.log($("#example").prop("value"));
         console.log('Attribute type is');
         console.log($("#example").attr("type"));
         console.log('Property type is');
         console.log($("#example").prop("type"));
         //Changing the attribute value to John
         $("#example").attr('value',"John");
         console.log('Changed Attribute is ');
         console.log($("#example").attr("value"));
         console.log('Changed property is');
         console.log($("#example").prop("value"));
         //Changing its value to Nothing with val()
         $("#example").val("Nothing");
         console.log('Changed Attribute with val() is ');
         console.log($("#example").attr("value"));
         console.log('Changed property with val() is');
         console.log($("#example").prop("value"));
       });
    </script>

Try it Yourself

Remove Attribute with removeattribute function in jQuery

In the following web example we have an input with id example and value houses.

  • We select the id example and store in the variable valueAttr the value of the attribute value.
  • We select the id example and remove the value attribute.
  • We select the id example and we store again in the variable valueAttr the value of the attribute value.

    <script>
       $(document).ready(function(){
        //We select the id example and store in the variable valueAttr the value of the attribute value
         var valueAttr = $("#example").attr("value");
         console.log('Attribute value is '+valueAttr);
        //We select the id example and remove the value attribute.
         $("#example").removeAttr("value");
        //We select the id example and we store again in the variable valueAttr the value of the attribute value.
         valueAttr = $("#example").attr("value");
         console.log('Attribute value after is '+valueAttr);
       });
    </script>

Try it Yourself

Modifying property values with the jQuery prop function

<script>
  $(document).ready(function(){
    //We obtain the value of the href property and display it
    var url = $("a#example").prop("href");
    console.log('href is '+url);
    //We create a new property target with value _blank
    $("a#example").prop("target", "_blank");
    //We create several properties title and style to the div with id 
    //square and style it as a red square
    $('div#square').prop({
      title: 'My square',
      style: 'background-color:red; width:200px; height: 200px',
    });
  });
</script>

Try it Yourself


Tips on SEO and Online Business

Next Articles

Previous Articles