jquery - 创建一个变量以等于动态创建的 DOM 元素

标签 jquery dom

我正在开发一个函数:

var container      = $('#container'),
    line1          = $('#line1'),
    line2          = $('#line2'),
    line3          = $('#line3'),
    line4          = $('#line4'),
    postcode       = $('#postcode'),
    addressPicker  = $('#selector'),
    noneOfTheAbove = $('#noneOfTheAbove');

    $(document).on('click', '#noneOfTheAbove', function()
    {
        container.removeClass('hidden');

        noneOfTheAbove.addClass('noDisplayElementImportant');
        addressPicker.addClass('hidden');

        line1.val('');
        line2.val('');
        line3.val('');
        line4.val('');
        postcode.val('');
    });

唯一的问题是 DOM 是在单击按钮时动态创建的。因此,使用这样的变量不起作用,因为它们在 $(document).ready() 上不存在。如何将动态 DOM 元素分配给变量?会是类似 $(document).find('#idHere') 吗?

谢谢

更新 1

使变量全局然后局部(使用charlietfl答案):

var container,
    line1,
    line2,
    line3,
    line4,
    postcode,
    addressPicker,
    noneOfTheAbove;

 $(document).on('click', '#noneOfTheAbove', function()
 {
     container      = $('#container');
     line1          = $('#line1');
     line2          = $('#line2');
     line3          = $('#line3');
     line4          = $('#line4');
     postcode       = $('#postcode');
     addressPicker  = $('#selector');
     noneOfTheAbove = $('#noneOfTheAbove');

     container.removeClass('hidden');

     noneOfTheAbove.addClass('noDisplayElementImportant');
     addressPicker.addClass('hidden');

     line1.val('');
     line2.val('');
     line3.val('');
     line4.val('');
     postcode.val('');
});

最佳答案

当这些变量确实存在时,在事件处理程序中定义它们

$(document).on('click', '#noneOfTheAbove', function() {

  var container = $('#container'),
    line1 = $('#line1'),
    line2 = $('#line2'),
    line3 = $('#line3'),
    line4 = $('#line4'),
    postcode = $('#postcode'),
    addressPicker = $('#selector'),
    noneOfTheAbove = $('#noneOfTheAbove');
  container.removeClass('hidden');

  noneOfTheAbove.addClass('noDisplayElementImportant');
  addressPicker.addClass('hidden');

  line1.val('');
  line2.val('');
  line3.val('');
  line4.val('');
  postcode.val('');
});

关于jquery - 创建一个变量以等于动态创建的 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43868830/

相关文章:

javascript - 如何使用用户输入动态传递数据集属性?

javascript - 冒泡 componentWillUpdate 和 componentDidUpdate

javascript - 等待 ES6 模块中的文档准备就绪

javascript - Jquery css 选择器如果没有数据则应用样式

c# - 在 ASP.NET 中通过 jQuery/ajax 获取复杂对象

jquery 内容面板切换器在加载时显示按钮为事件状态

javascript - 为什么不处理按钮点击事件?

javascript - 如何从 ASP :NET? 将数组传递给 jQuery

javascript - 如何从 api 获取信息并将其显示在 DOM 上?

javascript - 在您选择其中任何一个之前,将显示带有空白的 HTML 选择框