我需要对以下内容进行澄清。
为什么我需要指定2次onClick
事件? (当我这样做时,它确实满足了我的需求)一次在$('.modal').each(function()
函数内部,一次在$('.window-'+counter).find('input').each
函数内部
如果我仅使用第一个onClick
函数,则console.log
返回屏幕上所有表单的所有输入ID。
当我仅使用最后一个onClick
函数时,console.log
不会返回任何内容。
我正在尝试从模态屏幕中获取单独的输入。我有以下代码
$( document ).ready(function() {
$('.modal').each(function() {
//THIS PART-------------------------------------
$(this).on('click', function() {
//----------------------------------------------
if($( '.window-'+counter ).has('input:text').length) {
//console.log('first');
$('.window-'+counter).find('input').each(function() {
//AND THIS PART---------------------------------------------
$(this).on('click', function() {
//----------------------------------------------------------
console.log($(this).attr('id'));
});
});
};
});
});
});
这是我的HTML
<div class="modal window-1" id="modal-window"">
<div class="modal-body">
<input class="form-control" id="sku" name="sku" type="text" value="">
<input class="form-control" id="name" name="name" type="text" value="">
</div>
</div>
答案 0 :(得分:1)
我测试了您的代码,发现两件事。
1)您ID为“ modal-window”的HTML div中有1个不必要的双引号
2)不清楚您将值分配给“ counter”变量的位置。也许这是主要问题。
否则,您将不必使用onClick事件2次。如果我从$('。modal')。each循环中获得“计数器”变量,则此代码和您的HTML不会出现问题
$( document ).ready(function() {
//$('.modal').each(function() {
$('.modal').each(function(modalWindowIndex,modalWindow) {
counter = modalWindowIndex + 1; //your html modal window has class window-1, but jQuery each() index starts with 0
if($( '.window-'+counter ).has('input:text').length) {
$('.window-'+counter).find('input').each(function() {
$(this).on('click', function() {
console.log($(this).attr('id'));
});
});
};
});
});