我正在开发一个函数:
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/