我是jquery的新手,但是我有一个表,每行中有一个字段依赖于行中的另一个字段(复选框)。因为它在表中我需要批量处理它们。我不认为我正在使用next(),但我正在尝试抓住下一个.subnet_mask,因为它将是隐藏它的同一行中的那个。一旦我到达那里,我还必须更新它,以便它处理隐藏并显示是否选中了复选框。
$(function() {
$('.dhcp').each(function() {
$(this).click(function(){
$('.subnet_mask').next().hide();
});
});
});
感谢任何帮助!
编辑:好的确定:)这个页面实际上是用VisualForce编写的(对于salesforce)。为了简单起见,我们可以说它只是一个表格包裹着一个表格(最多20行代表不同的记录),显示一个带有.dhcp类的复选框字段和一个调用.subnet_mask的字段,该字段应根据复选框显示/隐藏。这有用吗?
答案 0 :(得分:1)
我宁愿这样做
$('.dhcp').on('click', function() {
$(this).nextAll('.subnet_mask').toggle();
});
然后,每次点击.submask
.submask
(假设每<tr>
一个.dhcp
)
答案 1 :(得分:0)
我建议如下,但是一旦我看到相关的HTML,这个建议可能会改变:
$('.dhcp').click(
function(){
$(this).closest('tr').find('.subnet_mask').hide();
});
这假设每行只有一个.subnet_mask
个元素(否则会隐藏所有这些元素)以响应click事件。你提到这取决于一个复选框,所以使用change()
方法可能会更好:
$('.dhcp').change(
function(){
var that = $(this);
if (that.is(':checked')) {
that.closest('tr').find('.subnet_mask').hide();
}
else {
that.closest('tr').find('.subnet_mask').show();
}
});
参考文献:
答案 2 :(得分:0)
您正在使用下一个错误。应该更像这样:
$(function() {
$('.dhcp').each(function() {
$(this).click(function(){
$(this).next('.subnet_mask').hide();
});
});
});
对于这种情况,我假设.dhcp
和.subnet_mask
确实是兄弟姐妹,后者紧接着前者。否则,.nextAll()
可以替换.next()
按以下方式编辑。