使用jquery添加和删除属性

Ali*_*eza 48 jquery attributes

这是我的按钮:

<button id="add">Add</button>
<button id="remove">Remove</button>
Run Code Online (Sandbox Code Playgroud)

这是我的JavaScript代码:

<script type="text/javascript">
    $(document).ready(function(){   
        /*** Add attribute ***/
        $("#add").click(function(){
            $("#page_navigation1").attr("id","page_navigation1");
        });     
        /*** Remove attribute ***/
        $("#remove").click(function(){
            $("#page_navigation1").removeAttr("id");
        });     
    });
</script>
Run Code Online (Sandbox Code Playgroud)

这是我的HTML代码:

<div id="page_navigation1">next</div>
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我点击删除按钮一切都很好,ID将被删除,但点击删除按钮,当我点击添加按钮,代码不工作,没有任何反应!

我需要添加和删除此代码的ID,但我只能删除ID,我无法添加ID.我需要一些帮助,还有一件事,

当按钮处于活动状态时,如何为按钮添加CSS样式?像这样,当我点击删除按钮时,我希望更改按钮背景为红色.当按钮处于活动状态时,我需要添加css类来添加和删除!而且我不知道怎么做!

Thi*_*iff 82

这是因为你已经删除了id你找到元素的方式.这行代码试图添加id="page_navigation1"到带有idnamed 的元素page_navigation1,但它不存在(因为你删除了属性):

$("#page_navigation1").attr("id","page_navigation1");
Run Code Online (Sandbox Code Playgroud)

演示: 的jsfiddle

如果要添加和删除<div>使用红色的类:

$( '#page_navigation1' ).addClass( 'red-class' );
Run Code Online (Sandbox Code Playgroud)

和:

$( '#page_navigation1' ).removeClass( 'red-class' );
Run Code Online (Sandbox Code Playgroud)

在哪里red-class:

.red-class {
    background-color: red;
}
Run Code Online (Sandbox Code Playgroud)


Sea*_*ira 27

删除ID"page_navigation"后,该元素不再具有 ID,因此在您第二次尝试访问时无法找到该ID.

解决方案是缓存对元素的引用:

$(document).ready(function(){
    // This reference remains available to the following functions
    // even when the ID is removed.
    var page_navigation = $("#page_navigation1");

    $("#add").click(function(){
        page_navigation.attr("id","page_navigation1");
    });     

    $("#remove").click(function(){
        page_navigation.removeAttr("id");
    });     
});
Run Code Online (Sandbox Code Playgroud)


Sha*_*lam 7

首先,您要添加一个类,然后删除id

<script type="text/javascript">
$(document).ready(function(){   
 $("#page_navigation1").addClass("page_navigation");        

 $("#add").click(function(){
        $(".page_navigation").attr("id","page_navigation1");
    });     
    $("#remove").click(function(){
        $(".page_navigation").removeAttr("id");
    });     
  });
</script>
Run Code Online (Sandbox Code Playgroud)


xda*_*azz 5

如果要执行此操作,则需要先将其保存在变量中.因此,您不需要每次都使用id来查询此元素.

var el = $("#page_navigation1");

$("#add").click(function(){
  el.attr("id","page_navigation1");
});     

$("#remove").click(function(){
  el.removeAttr("id");
});     
Run Code Online (Sandbox Code Playgroud)