我需要使用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.
您的语法不正确,您应该将值作为第二个参数传递:
jQuery(this).prev("li").attr("id","newId");
首选的选项.attr
是使用.prop
如下:
$(this).prev('li').prop('id', 'newId');
.attr
检索元素的属性,同时.prop
检索属性引用的属性(即您实际想要修改的属性)
你的意思是:
jQuery(this).prev("li").attr("id", "newID");
这会将ID设置为新ID
我用这个结构做了类似的事情
$('li').each(function(){ if(this.id){ this.id = this.id+"something"; } });
我不确定你的目标是什么,但是使用addClass可能会更好吗?我的意思是我认为对象ID应该是静态的并且特定于该对象.如果你只是试图改变它在页面上显示或类似的东西,我会将这些细节放在一个类中,然后将其添加到对象,而不是尝试更改它的ID.再说一次,我说的是不理解你强调的目标.
$("#LeNomDeMaBaliseID").prop('id', 'LeNouveauNomDeMaBaliseID');