我编写了一个代码片段,遍历所有输入标记并检查其值。我有一些条件,我将在稍后申请(尚未在此片段中完成)。我想要的是当前迭代中的下一个迭代值。就像php for循环一样,我们可以用一些计数器+ 1来获得下一个索引值吗?我的代码片段是在迭代表中并在每列中搜索输入标记。我想获取同一行中下一列的输入标记。
$("table#table- tr").each(function () {
var row = $(this).index() + 1;
var td = $(this).find('td');
$(td).each(function () {
var input = $(this).find('input');
$(input).each(function () {
if (!$(input).val()) {
$('input._name').val("");
} else {
//gives the current input tag value here!
}
});
});
});
答案 0 :(得分:1)
我希望这就是你所寻找的'因为不清楚100%
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- <script src="../js/jquery.js"></script>-->
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<title>yeah</title>
</head>
<body>
<form method="post" action="">
<table width="900">
<tr>
<td><input type="text" name="c1" id="c1" value="1"></td>
<td><input type="text" name="c2" id="c2" value="2"></td>
<td><input type="text" name="c3" id="c3" value="3"></td>
<td><input type="text" name="c4" id="c4" value="4"></td>
</tr>
<tr>
<td><input type="text" name="c5" id="c5" value="5"></td>
<td><input type="text" name="c6" id="c6" value="6"></td>
<td><input type="text" name="c7" id="c7" value="7"></td>
<td><input type="text" name="c8" id="c8" value="8"></td>
</tr>
<tr>
<td><input type="text" name="c9" id="c9" value="9"></td>
<td><input type="text" name="ca" id="ca" value="10"></td>
<td><input type="text" name="cb" id="cb" value="11"></td>
<td><input type="text" name="cc" id="cc" value="12"></td>
</tr>
</table>
<textarea name="tx1" rows="3" cols="20"></textarea>
</form>
<script type="text/javascript">
<!--
$(document).ready(function(){
var index=1;
$('input').each(function(index) {
$(this).before(index);
$('textarea').val($('textarea').val()+'\n'+$(this).val());
index++;
});
});
//-->
</script>
</body>
</html>
答案?好 ! 怎么工作?
$(document).ready(function(){
this is a kind of onload so you'll have access to all elements when everything is loaded
});
这样的代码
$('textarea').val('row1\nrow2')
在textarea中添加2行
$('textarea').val()
应该获得textarea的价值
所以$('textarea').val($('textarea').val()+'\n'+'SOMETHING');
应该添加一个带有旧值textarea的新行加上一个带有文本SOMETHING的新行
jquery使用此
$('input').each(function(index) {
console.log($(this).val());
});
$(this).before("100");
正在添加当前html元素'100'
里面每个都是我们在loop = $(this).val()
var index = 1;意味着全球化,到处使用它!
在循环'each'index++;
之后,将此索引增加1,以便在下一个输入元素
..轻松工作
答案 1 :(得分:1)
如果我理解正确,您可以使用input
内的eq
和index
函数获取下一个.each
,请参阅下面的演示我已经缩小了脚本来解决实际问题
$("table#table- tr").each(function() {
var row = $(this);
var td = $(this).find('td');
$(td).each(function() {
var input = $(this).find('input');
/*this get the next input and print value in console*/
var nextInput = row.find('td:eq(' + parseInt($(this).index() + 1) + ') input');
if (nextInput.length) {
console.log('current input value = ' + input.val(), 'next td input value = ' + nextInput.val());
}
/*this get the next input and print value in console*/
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="table-">
<tr>
<td><input type='text' value="1"></td>
<td><input type='text' value="2"></td>
<td><input type='text' value="3"></td>
</tr>
<tr>
<td><input type='text' value="1"></td>
<td><input type='text' value="2"></td>
<td><input type='text' value="3"></td>
</tr>
<tr>
<td><input type='text' value="1"></td>
<td><input type='text' value="2"></td>
<td><input type='text' value="3"></td>
</tr>
</table>