Changing an element's ID with jQuery

2019-01-02 17:17发布

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.

9条回答
人间绝色
2楼-- · 2019-01-02 17:56

if you want to change old id then now show in example

<label id="myOldId">Change id....</label>

and chage by use java-script

<script type="text/javascript" src="jQuery-1.7.2.js"></script> 

<script>
$(document).ready(function() {

    $('#myOldId').attr('id', 'newID');

    });
</script>
查看更多
裙下三千臣
3楼-- · 2019-01-02 17:57

Eran's answer is good, but I would append to that. You need to watch any interactivity that is not inline to the object (that is, if an onclick event calls a function, it still will), but if there is some javascript or jQuery event handling attached to that ID, it will be basically abandoned:

$("#myId").on("click", function() {});

If the ID is now changed to #myID123, the function attached above will no longer function correctly from my experience.

查看更多
长期被迫恋爱
4楼-- · 2019-01-02 17:57
<script>
       $(document).ready(function () {
           $('select').attr("id", "newId"); //direct descendant of a
       });
</script>

This could do for all purpose. Just add before your body closing tag and don't for get to add Jquery.min.js

查看更多
登录 后发表回答