我有一些输入(复选框),我有以下代码:
$(document).on('change', '.my-input', function () {
//I'm doing something here.
});
但是代码上方几行已经选中了这些复选框:
var myInputs = $('.my-inputs');
我是否可以将myInputs
引用到侦听器并使用变量?
PS:这些复选框最初不在DOM中。
答案 0 :(得分:1)
无论是否处于初始DOM状态,都以相同的方式使用侦听器。也许首先考虑清除听众。下面的示例侦听change
初始输入集,取消绑定它们,添加新输入并重新侦听。另外,我已经保持一个input
不显示初始监听器状态。
这有助于回答您的问题吗?我不确定你是否在获取新元素的价值方面遇到问题,或者仅仅是听众。无论哪种方式,您都可以使用新的侦听器来获取checked
状态等。
// Old listener state
$('.inputs, .old-inputs').on('change', function() {
console.log('Input has changed (initial DOM)')
});
// Add a new element to the DOM
$('.inputs-container').append('<input type="checkbox" class="inputs">')
// Unbind
$('.inputs').unbind('change');
// New listener
$('.inputs').on('change', function() {
console.log('Input has changed (post-DOM update)')
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='inputs-container'>
<input type='checkbox' class='old-inputs'>
<input type='checkbox' class='inputs'>
<input type='checkbox' class='inputs'>
</div>
答案 1 :(得分:0)
您可以将所选复选框的值设为:
var selectedValues = [];
$(document).on('change', '.my-input', function () {
$. each($(".my-input:checked"), function(){
selectedValues.push($(this).val());
});
});