动态添加元素的 jQuery 选择器似乎不起作用。简而言之,我有一组带有功能的复选框。PHP 为要添加的每一行数据创建一个 add(..) 条目(在本例中是一个文件名、注释和用于删除它的复选框)。这些是使用硬编码模板添加的,效果很好。我不会发布添加脚本,但它会生成类似的条目(为简洁而修改)......
<tr>
<td class="cell-file"><a href="...">afile.jpg</a></td>
<td class="cell-comment">A comment</td>
<td class="cell-remove a-center last"><input type="checkbox" id="...is_delete" name="...is_delete" value="1" class="removable"></td>
</tr>
在另一个复选框的状态更改时,我需要将所有动态添加的复选框设置为选中(并禁用按钮),并使用以下...
function setAddButton(arg){
if(arg){
$('add-attachment').addClassName('disabled');
Event.stopObserving('add-attachment', 'click');
// Check all removable checkboxes
$('input.removable:checkbox').attr('checked', true);
}else{
$('add-attachment').removeClassName('disabled');
Event.observe('add-attachment', 'click', orderAttachment.add.bind(orderAttachment));
}
}
问题是选择器$('input.removable:checkbox')
返回 null。我尝试了各种形式的这个选择器,包括$('.removable:checkbox')
&$('input:checkbox.removable')
但没有选择任何内容。
各种帖子都说这个选择器应该可以工作,但事实并非如此。所以我假设这是因为 jQuery 无法“看到”动态添加的元素。我已经阅读了有关使用 .live() 或 .on() 的各种帖子,但这是关于将事件处理程序添加到动态添加的元素。我不想要一个事件处理程序,我只想能够选择和设置动态添加的复选框的选中属性。
有任何想法吗?