javascript - jquery 无法识别 html 元素的 id

标签 javascript jquery

我不知道为什么 #btn 上的 jQuery 单击事件不起作用。

`//this is the script` 
$('document').ready(function(){
  $('#btn').click(function(){
    alert('2');
  });
});

function appendToPopUp(){
  document.getElementById('popUp').innerHTML='<BUTTON id="btn" onClick="alert(1)">clickerIci</BUTTON>';
}

<!--this is the body-->
<DIV id='popUp'></DIV>
<BUTTON onClick='appendToPopUp()'>display</BUTTON>

最佳答案

这里有几个问题:

$('document').ready(...

应该是:

$(document).ready(...

然后动态插入 btn 按钮。由于它在 document.ready 上不可用,因此事件根本不附加到它。您必须在 appendToPopUp 中重新附加该事件。

function appendToPopUp()
{
  document.getElementById('popUp').innerHTML='<BUTTON id="btn" onClick="alert(1)">clickerIci</BUTTON>';

  $('#btn').click(function(){
    alert('2');
  });
}

因此,在这种情况下,您实际上不需要 $(document).ready()

编辑

我实际上要做的是这样的:

<DIV id='popUp'></DIV>
<BUTTON id="display">display</BUTTON>

$(document).ready(function() {
  $('#display').on('click', function() {
    $('#popUp').html('<BUTTON id="btn">clickerIci</BUTTON>');

    $('#btn').on('click', function() {
      alert('2');
    });
  });
});

参见JSFiddle .

关于javascript - jquery 无法识别 html 元素的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23607788/

相关文章:

javascript - 通过 Ajax 动态加载时多个脚本之间的可见性

javascript - 将 url 参数写入文件导致 "undefined"

javascript - 从ajax请求获取数据到Angular

javascript - 获取多个复选框的值并将它们插入MySQL

javascript - 检测 chrome.extension.sendRequest 失败

javascript - 仅更改用户在 AJAX 扩展文本框中输入的字符串的文本颜色

javascript - jquery代码重叠

javascript - 使用 foreach 可以更简单地编写吗?

javascript - 循环 mp3 跨浏览器

javascript - 在三元条件下返回新的 promise Q