用jQuery改变元素的ID

我需要使用jQuery来更改元素的ID。

显然这些不起作用:

jQuery(this).prev("li").attr("id")="newid" jQuery(this).prev("li")="newid" 

我发现我可以用下面的代码来实现它:

 jQuery(this).prev("li")show(function() { this.id="newid"; }); 

但是这对我来说并不合适。 必须有更好的方法,不是吗? 另外,如果没有,我可以使用其他方法而不是显示/隐藏或其他效果? 显然,我不想每次都显示/隐藏或影响元素,只是为了更改它的ID。

(是的,我是一个jQuery新手。)

编辑
在这种情况下,我不能使用类,我必须使用ID。

您的语法不正确,您应该将该值作为第二个parameter passing:

 jQuery(this).prev("li").attr("id","newId"); 

你的意思是:

 jQuery(this).prev("li").attr("id", "newID"); 

这将把ID设置为新的ID

.attr更好的select是使用.prop像这样:

 $(this).prev('li').prop('id', 'newId'); 

.attr检索元素的属性,而.prop检索属性引用的属性(即你实际想要修改的属性)

我做了一些类似的构造

 $('li').each(function(){ if(this.id){ this.id = this.id+"something"; } }); 

我不确定你的目标是什么,但是使用addClass可能会更好吗? 我的意思是一个对象ID在我看来应该是静态的,特定的对象。 如果你只是试图改变它在页面上显示或类似的东西,我会把这些细节放在一个类中,然后把它添加到对象,而不是试图改变它的ID。 我再说一遍,不明白你强调的目标。

 $("#LeNomDeMaBaliseID").prop('id', 'LeNouveauNomDeMaBaliseID'); 

如果你想改变旧的ID,那么现在显示在例子中

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

并通过使用java脚本chage

 <script type="text/javascript" src="jQuery-1.7.2.js"></script> <script> $(document).ready(function() { $('#myOldId').attr('id', 'newID'); }); </script> 

伊兰的答案是好的,但我会追加到这一点。 你需要观察任何不与对象内联的交互性(也就是说,如果一个onclick事件调用了一个函数,它仍然会),但是如果附加了一些javascript或jQuery事件处理,它将基本上被放弃:

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

如果ID现在更改为#myID123,则上述function将不能再正常运行。

 <script> $(document).ready(function () { $('select').attr("id", "newId"); //direct descendant of a }); </script> 

这可以为所有目的。 只需在你的身体结束标记之前添加,而不要添加Jquery.min.js