使用jQuery更改元素的ID

2020/10/04 01:21 · javascript ·  · 0评论

我需要使用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');
<script>
       $(document).ready(function () {
           $('select').attr("id", "newId"); //direct descendant of a
       });
</script>

这可以实现所有目的。只需在您的正文结束标记之前添加,不要添加Jquery.min.js

Eran的回答很好,但我要补充一下。您需要观察与对象不是内联的任何交互性(也就是说,如果onclick事件调用一个函数,它仍然会),但是如果该ID附加了一些javascript或jQuery事件处理,则它将基本上被放弃:

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

如果现在将ID更改为#myID123,则根据我的经验,上面附加的功能将无法再正常运行。

本文地址:http://javascript.askforanswer.com/shiyongjquerygenggaiyuansudeid.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!