jquery next all不适用于输入

jquery next all不适用于输入,jquery,Jquery,嗨,朋友们,这是我的代码。接下来,jquery中的所有操作都不起作用。当我输入输入时,下一个所有输入必须具有相同的值,并且不应更改前一个值。在这里,我已经编写了代码,但是当给定值时,下一个输入没有得到值。如果更改任意值,则应更改下一个值,而不是上一个值 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"><

嗨,朋友们,这是我的代码。接下来,jquery中的所有操作都不起作用。当我输入输入时,下一个所有输入必须具有相同的值,并且不应更改前一个值。在这里,我已经编写了代码,但是当给定值时,下一个输入没有得到值。如果更改任意值,则应更改下一个值,而不是上一个值

 <html>
   <head>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
   <script>
     $(document).ready(function(){

        $('.tot').change(function(){

           var tc=$(this).val();

             $(this).nextAll('.tot').each(function(){

               $(this).val(tc);

            });

         });

       });
     </script>
   </head>
  <body>
     <?php
       include('connect.php');
       $yr=$_POST['year'];
       $sm=$_POST['sem'];
       $br=$_POST['branch'];
       $sc=$_POST['sec'];
       $k=0;

       $sql="select rollno from intstd where year='$yr' and sem='$sm' and branch='$br' and sec='$sc'";
       $query=mysql_query($sql);
         echo"<table>";
             while($row=mysql_fetch_array($query))
             {
                 $k++;
                 $roll=$row['rollno'];
                 echo"<tr>";
                 echo"<td>$k</td>";
                 echo"<td>$roll</td>";
                 echo"<td><input type='text' class='tot' name='a[]'/></td>";
                 echo"<td><input type='text' name='b[]' /></td>";
                 echo"</tr>";
                }
              echo"</table>";
              ?>

             </body>
           </html>

$(文档).ready(函数(){
$('.tot').change(函数(){
var tc=$(this.val();
$(this).nextAll('.tot').each(function(){
$(this).val(tc);
});
});
});

您的代码无法工作,因为应将
.nextAll()
应用于同级。但是在你的情况下,
.tot
的孩子。这意味着你必须像这样做一点修正:

    $('.tot').change(function(){
       var tc = $(this).val();

       $(this).parent().nextAll().find('.tot').each( function() {
           $(this).val(tc);
       });

     });
请注意,
onchange
事件在
input
失去焦点时触发。如果您想立即看到更改,您应该选择
.keyup()

我发现并不是每个输入都有
。tot
类,检查一下

附言:这就是一个例子

UPD:所有带有表格的案例的工作示例

  • 一个
    用于所有
    s:

  • 每个
    都有自己的

  • 如果您有任意数量的
    s和任意数量的
    s以及任意数量的
    s,则最终解决方案为:


  • 不为桌子工作。上面的更正适用于div。请告诉我关于table我在JSFIDLE中用table替换div编辑了您的示例。它不起作用。我向您展示了上面的一个示例()。它与
    一起工作。但是在你的新案例中,你将每个
    放在了它自己的
    中(在你的问题中,你有一个
    用于所有
    )。你改变了结构,这就是为什么我的脚本不起作用。JS和HTML必须协同工作:如果您更改HTML,您还应该更正JS。现在您必须使用
    .parent().parent()
    .parents('tr')
    .So。你的结构是什么?我已经更新了我的答案。现在你有了解决每一个问题的办法。不要忘了在JSFIDLE中包含jQuery,没有jQuery(您没有包含jQuery)这些脚本就无法工作。因此,如果我帮助了你,并且一切都正常(确实如此,请检查更新答案中的示例),那么是时候评估我的帮助并标记我的答案,以表明问题得到了回答。