I need to change an element's ID using jQuery.
Apparently these don't work:
jQuery(this).prev("li").attr("id")="newid" jQuery(this).prev("li")="newid"
I found out that I can make it happen with the following code:
jQuery(this).prev("li")show(function() { this.id="newid"; });
But that doesn't seem right to me. There must be a better way, no? Also, in case there isn't, what other method can I use instead of show/hide or other effects? Obviously I don't want to show/hide or affect the element every time, just to change its ID.
(Yep, I'm a jQuery newbie.)
Edit
I can't use classes in this case, I must use IDs.
To change the id attribute of an HTML element, you can use the jQuery attr() method which allows you to set an element's attribute value. You can change any HTML element id attribute value by using the example above as a reference.
Approach 2: We can use the id property inside the element to change the ID using JavaScript.
id is not a valid jquery function. You need to use the . attr() function to access attributes an element possesses.
Your syntax is incorrect, you should pass the value as the second parameter:
jQuery(this).prev("li").attr("id","newId");
A PREFERRED OPTION over .attr
is to use .prop
like so:
$(this).prev('li').prop('id', 'newId');
.attr
retrieves the element's attribute whereas .prop
retrieves the property that the attribute references (i.e. what you're actually intending to modify)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With