如何将事件侦听器附加到本身已使用Javascript插入的元素?(不带jQuery)

如何将事件侦听器附加到本身已使用Javascript插入的元素?(不带jQuery),javascript,dom,Javascript,Dom,在此处插入一些新内容(以及其他内容): 将内容注入DOM后,您可以查询内容、附加事件、获取值等,就像其他任何DOM元素一样 考虑以下代码: var accessories = document.querySelector('.accessories'); var addedaccessories = false; if (addedaccessories === false) { // inject content into the DOM accessories.innerHTML

在此处插入一些新内容(以及其他内容):


将内容注入DOM后,您可以查询内容、附加事件、获取值等,就像其他任何DOM元素一样

考虑以下代码:

var accessories = document.querySelector('.accessories');
var addedaccessories = false;


if (addedaccessories === false) {
  // inject content into the DOM
  accessories.innerHTML += '<input value="0.27" id="stand" type="checkbox"><label for="stand">Stand</label><br/><input value="0.28" id="mic" type="checkbox"><label for="mic">Mic</label>';
}

accessories.addEventListener('click', function(e) {
  if (e.target.tagName === 'LABEL') {
    // now that content has been injected, you can query 
    // for it like you normally would
    var inputs = document.querySelectorAll('.accessories input[type=checkbox]');

    // now grab the value out of the injected elements
    inputs.forEach(function(input) {
      console.log(input.value);
    });
  }
});
0.27
0.28

您可以找到一个JSFIDLE。

在将内容注入DOM之后,您可以查询它、附加事件、获取值等,就像其他任何DOM元素一样

考虑以下代码:

var accessories = document.querySelector('.accessories');
var addedaccessories = false;


if (addedaccessories === false) {
  // inject content into the DOM
  accessories.innerHTML += '<input value="0.27" id="stand" type="checkbox"><label for="stand">Stand</label><br/><input value="0.28" id="mic" type="checkbox"><label for="mic">Mic</label>';
}

accessories.addEventListener('click', function(e) {
  if (e.target.tagName === 'LABEL') {
    // now that content has been injected, you can query 
    // for it like you normally would
    var inputs = document.querySelectorAll('.accessories input[type=checkbox]');

    // now grab the value out of the injected elements
    inputs.forEach(function(input) {
      console.log(input.value);
    });
  }
});
0.27
0.28

您可以找到一个JSFIDLE。

可能重复的可能重复的感谢!我把它们全部加起来还是有点困难<代码>var accessoryTotal=0;附件.addEventListener('click',函数(e){if(e.target.type='checkbox'){var inputs=document.queryselectoral('.accessories input[type=checkbox]);for(let i=0;i@Ollie\u我还有一把小提琴来演示如何添加总数:谢谢你的小提琴。它似乎有一些问题。在你的小提琴中,我必须单击输入,然后在它注册正确的值之前再次单击它。它还直接计算组合值,而不是根据是否只检查一个或两个输入来确定总数。我发现这真的是一个很难解决的问题。@Ollie_W,做一把小提琴,准确地显示你想做什么,以及你在评论中的预期输出。我只是展示了如何循环遍历值之类的示例,因此我的解决方案不够具体,无法帮助您解决特定的问题。@Ollie_W,您解决了您的问题吗?如果您对您的期望和当前的实现有详细的了解,我可以帮您解决。谢谢!我把它们全部加起来还是有点困难<代码>var accessoryTotal=0;附件.addEventListener('click',函数(e){if(e.target.type='checkbox'){var inputs=document.queryselectoral('.accessories input[type=checkbox]);for(let i=0;i@Ollie\u我还有一把小提琴来演示如何添加总数:谢谢你的小提琴。它似乎有一些问题。在你的小提琴中,我必须单击输入,然后在它注册正确的值之前再次单击它。它还直接计算组合值,而不是根据是否只检查一个或两个输入来确定总数。我发现这真的是一个很难解决的问题。@Ollie_W,做一把小提琴,准确地显示你想做什么,以及你在评论中的预期输出。我只是展示了如何循环遍历值之类的示例,因此我的解决方案不够具体,无法帮助您解决特定的问题。@Ollie_W,您解决了您的问题吗?如果您对您的期望和当前的实现做了详细的介绍,我可以帮助您。