Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing an element's ID with jQuery

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.

like image 838
yoavf Avatar asked Dec 07 '08 17:12

yoavf


People also ask

Can we change id of element in jQuery?

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.

Can you change the id of an element in JavaScript?

Approach 2: We can use the id property inside the element to change the ID using JavaScript.

Can I use id in jQuery?

id is not a valid jquery function. You need to use the . attr() function to access attributes an element possesses.


2 Answers

Your syntax is incorrect, you should pass the value as the second parameter:

jQuery(this).prev("li").attr("id","newId"); 
like image 64
Eran Galperin Avatar answered Oct 02 '22 16:10

Eran Galperin


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)

like image 29
Jeremy Moritz Avatar answered Oct 02 '22 16:10

Jeremy Moritz