Forequ内的Jquery Foreach

时间:2016-09-28 12:24:06

标签: javascript jquery

我试图在另一个foreach中做一个foreach。 第一个是预先找到每个WodTabIndex类,每个输入,链接和选择找到的秒数。

这是我的代码

var StartId= 500; $('.WodTabIndex').each(function(){
        var $this = $(this);
        $this.children(':input:visible, input[type="checkbox"], a, select').each(function(i){
            (this).attr('tabindex', StartId + i);
                   (this).attr('tabindex', StartId + i);
        });
    });

我做错了什么,但我不知道是什么。因为永远不会进入foreach。

示例小提琴:https://jsfiddle.net/lfvo/wk3w237y/

2 个答案:

答案 0 :(得分:1)

for (var i = 0; i <= $('.WodTabIndex').length; i++) {
	var $this = $($('.WodTabIndex')[i]).children(':input:visible, input[type="checkbox"], a, select');
	for (var ii = $($this).length - 1; ii >= 0; ii--) {
		$($($this)[ii]).attr("tabindex", ii+500);
        console.log("Row: "+i+" Checkbox index "+ii+" have attr tabindex: "+(ii+500));
        // inspect element to see result
        // each checkbox have tabindex 500, 501, 502, ...
  
	}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="WodTabIndex">
<input type="checkbox">
  
  
  
</div>
<div class="WodTabIndex">
<input type="checkbox">
 <input type="checkbox"> <input type="checkbox">
  
  
</div>
<div class="WodTabIndex">
<input type="checkbox">
 <input type="checkbox"> <input type="checkbox">
 <input type="checkbox"> <input type="checkbox">
 <input type="checkbox"> <input type="checkbox">
</div>

答案 1 :(得分:1)

发布的代码有两个问题:

首先,您需要使用.find而不是.children。儿童只能查看直接信条,而不是项目下方的整个DOM。

所以这个html:

<div id='top'>
    <ul>
      <li></li>
      <li></li>

$("#top").children("li")代码无法找到li

第二个是你需要在循环中使用$(this),否则你得到this.attr is not a function

更新了问题的代码:

var startId = 500; 
$('.WodTabIndex').each(function(){
    var $this = $(this);
    $this.find('input:visible, input[type="checkbox"], a, select').each(function(i){
        $(this).attr('tabindex', startId + i);
    });
});