在Current Iteration中获取每个函数Jquery的Next迭代值

时间:2018-01-07 21:11:16

标签: jquery

我编写了一个代码片段,遍历所有输入标记并检查其值。我有一些条件,我将在稍后申请(尚未在此片段中完成)。我想要的是当前迭代中的下一个迭代值。就像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!
                    }
                    });
                });
            });

2 个答案:

答案 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内的eqindex函数获取下一个.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>