jquery next all不适用于输入
嗨,朋友们,这是我的代码。接下来,jquery中的所有操作都不起作用。当我输入输入时,下一个所有输入必须具有相同的值,并且不应更改前一个值。在这里,我已经编写了代码,但是当给定值时,下一个输入没有得到值。如果更改任意值,则应更改下一个值,而不是上一个值jquery next all不适用于输入,jquery,Jquery,嗨,朋友们,这是我的代码。接下来,jquery中的所有操作都不起作用。当我输入输入时,下一个所有输入必须具有相同的值,并且不应更改前一个值。在这里,我已经编写了代码,但是当给定值时,下一个输入没有得到值。如果更改任意值,则应更改下一个值,而不是上一个值 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"><
<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)这些脚本就无法工作。因此,如果我帮助了你,并且一切都正常(确实如此,请检查更新答案中的示例),那么是时候评估我的帮助并标记我的答案,以表明问题得到了回答。