This question already has answers here:
Event binding on dynamically created elements?
                            
                                (23个答案)
                            
                    
                2年前关闭。
        

    

我有一个带有空id属性的按钮。我想通过动态添加到它的ID获得<a>

注意:我不想使用createElement()添加<a>

的HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <a id="" class="btn" href="#"><button>Green</button></a><br><br>
  <a id="changeId" href="#"><button>Change Id!</button></a>
</body>
</html>


JS

$(document).ready(function() {

  $("a#green").on("click", function(){
    $("body").css("background-color","green");
  });
  $("a#changeId").on("click", function(){
    $("a.btn").attr("id","green");
  });

});


这是我在jsFiddle上的代码

最佳答案

由于id是通过另一个事件创建的,因此可以使用事件委托方法:

$("body").on("click","a#green", function(){




$(document).ready(function() {

  $("body").on("click","a#green", function(){
    $("body").css("background-color","green");
  });
  $("a#changeId").on("click", function(){
    $("a.btn").attr("id","green");
  });

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
  <a id="" class="btn" href="#"><button>Green</button></a><br><br>
  <a id="changeId" href="#"><button>Change Id!</button></a>
</body>

10-05 20:53
查看更多