Javascript 如何隐藏与其依赖的字段在同一行中的字段
我是jquery的新手,但我有一个表,每行有一个字段,它依赖于行中的另一个字段(复选框)。因为它在一张桌子里,所以我需要批量处理它们。我认为我没有正确使用next(),但我正在尝试获取next.subnet\u掩码,因为它将与隐藏它在同一行中。我还必须更新它,一旦我得到那么远,以便它处理隐藏和显示,如果复选框被选中或没有Javascript 如何隐藏与其依赖的字段在同一行中的字段,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我是jquery的新手,但我有一个表,每行有一个字段,它依赖于行中的另一个字段(复选框)。因为它在一张桌子里,所以我需要批量处理它们。我认为我没有正确使用next(),但我正在尝试获取next.subnet\u掩码,因为它将与隐藏它在同一行中。我还必须更新它,一旦我得到那么远,以便它处理隐藏和显示,如果复选框被选中或没有 $(function() { $('.dhcp').each(function() { $(this).click(function(){
$(function() {
$('.dhcp').each(function() {
$(this).click(function(){
$('.subnet_mask').next().hide();
});
});
});
感谢您的帮助
编辑:ok:)这个页面实际上是用VisualForce(针对salesforce)编写的。为了简单起见,让我们假设它只是一个包装在一个表(最多20行代表不同的记录)周围的表单,显示一个带有类.dhcp的复选框字段,以及在它调用.subnet\u mask之后的一个字段,该字段应根据复选框显示/隐藏。这有帮助吗?我建议如下,尽管一旦我看到相关的HTML,这个建议可能会改变:
$('.dhcp').click(
function(){
$(this).closest('tr').find('.subnet_mask').hide();
});
这假设每行只有一个.subnet\u mask
元素作为对单击事件的响应(否则将隐藏所有元素)。您提到这取决于复选框,因此使用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();
}
});
参考资料:
- 我宁愿这样做
$('.dhcp').on('click', function() {
$(this).nextAll('.subnet_mask').toggle();
});
然后,每次单击“下一个”按钮时,您都会显示/隐藏下一个
.submask
(假设每个
都有一个.submask
),因为您不正确地使用了下一个。应该是这样的:
$(function() {
$('.dhcp').each(function() {
$(this).click(function(){
$(this).next('.subnet_mask').hide();
});
});
});
在这种情况下,我假设.dhcp
和.subnet\u mask
确实是兄弟,后者紧跟在前者之后。否则,.nextAll()
可以替换为.next()
根据下面的要点进行编辑。一些HTML将非常有用:)不要“说”它是什么,告诉我们它是什么。提供呈现HTML的示例(浏览器可以看到“查看源代码”)。只在
.subnet\u mask
是.dhcp
的直接兄弟姐妹时才有效,尽管(这里很可能是这样:)回答很好,很有意义,我感谢您的参考,谢谢!