Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何隐藏与其依赖的字段在同一行中的字段_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

Javascript 如何隐藏与其依赖的字段在同一行中的字段

Javascript 如何隐藏与其依赖的字段在同一行中的字段,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我是jquery的新手,但我有一个表,每行有一个字段,它依赖于行中的另一个字段(复选框)。因为它在一张桌子里,所以我需要批量处理它们。我认为我没有正确使用next(),但我正在尝试获取next.subnet\u掩码,因为它将与隐藏它在同一行中。我还必须更新它,一旦我得到那么远,以便它处理隐藏和显示,如果复选框被选中或没有 $(function() { $('.dhcp').each(function() { $(this).click(function(){

我是jquery的新手,但我有一个表,每行有一个字段,它依赖于行中的另一个字段(复选框)。因为它在一张桌子里,所以我需要批量处理它们。我认为我没有正确使用next(),但我正在尝试获取next.subnet\u掩码,因为它将与隐藏它在同一行中。我还必须更新它,一旦我得到那么远,以便它处理隐藏和显示,如果复选框被选中或没有

$(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
      的直接兄弟姐妹时才有效,尽管(这里很可能是这样:)回答很好,很有意义,我感谢您的参考,谢谢!