工作之中遇到的小问题-

00

迭代div name取不到next 的值0

Html代码   收藏代码
  1. <table class="table table-bordered" style="width:100%;">  
  2.        <tbody id='tab2' class='table table-hover'><tr><th>序号</th><th>支付时间</th><th>支付金额</th><th>是否已出账</th></tr>  
  3.        <tr>  
  4.            <td>1</td>  
  5.            <td ><div id="rtime1" class="datepicker-target">2014-05-01</div></td>  
  6.            <td><input type="text" name="money"/> </td>  
  7.            <td></td>  
  8.        </tr>  
  9.        <tr>  
  10.            <td>2</td>  
  11.            <td><div id='rtime2' class="datepicker-target">2014-05-02</div></td>  
  12.            <td><input type="text" name="money"/></td>  
  13.            <td></td>  
  14.        </tr>  
  15.        <tr>  
  16.            <td>3</td>  
  17.            <td><div id='rtime3' class="datepicker-target">2014-05-03</div></td>  
  18.            <td><input type="text" name="money"/></td>  
  19.            <td></td>  
  20.        </tr>  
  21.        <tr>  
  22.            <td>4</td>  
  23.            <td><div id='rtime4' class="datepicker-target">2014-05-04</div></td>  
  24.            <td><input type="text" name="money"/></td>  
  25.            <td></td>  
  26.        </tr>  
  27.        <tr>  
  28.            <td>5</td>  
  29.            <td><div id='rtime5' class="datepicker-target">2014-05-05</div></td>  
  30.            <td><input type="text" name="money"/></td>  
  31.            <td></td>  
  32.        </tr>  
  33.   
  34.        <tr>  
  35.            <td>6</td>  
  36.            <td><div id='rtime6' class="datepicker-target">2014-05-06</div></td>  
  37.            <td><input type="text" name="money"/></td>  
  38.            <td></td>  
  39.        </tr>  
  40.        <tr>  
  41.            <td>7</td>  
  42.            <td><div id='rtime7' class="datepicker-target">2014-05-07</div></td>  
  43.            <td><input type="text" name="money"/></td>  
  44.            <td></td>  
  45.        </tr>  
  46.        <tr>  
  47.            <td>8</td>  
  48.            <td><div id='rtime8' class="datepicker-target">2014-05-08</div></td>  
  49.            <td><input type="text" name="money"/></td>  
  50.            <td></td>  
  51.        </tr>  
  52.        <tr>  
  53.            <td>9</td>  
  54.            <td><div id='rtime9' class="datepicker-target">2014-05-19</div></td>  
  55.            <td><input type="text" name="money"/></td>  
  56.            <td></td>  
  57.        </tr>  
  58.        <tr>  
  59.            <td>10</td>  
  60.            <td><div id='rtime10' class="datepicker-target">2014-05-10</div></td>  
  61.            <td><input type="text" name="money"/></td>  
  62.            <td></td>  
  63.        </tr>  
  64.        <tr>  
  65.            <td>11</td>  
  66.            <td><div id='rtime11' class="datepicker-target">2014-05-11</div></td>  
  67.            <td><input type="text" name="money"/></td>  
  68.            <td></td>  
  69.        </tr>  
  70.        <tr>  
  71.            <td>12</td>  
  72.            <td><div id='rtime12' class="datepicker-target">2014-05-12</div></td>  
  73.            <td><input type="text" name="money"/></td>  
  74.            <td></td>  
  75.        </tr>  
  76.        <tr>  
  77.            <td colspan="5" style="text-align: center" >  
  78.            <button type="button" class="btn" id="okBtn">  
  79.                <span>保存</span>  
  80.            </button>  
  81.            <button type="button" class="btn" id="backBtn">  
  82.                <span>返回</span>  
  83.            </button>  
  84.        </td></tr>  
  85.        </tbody>  
  86.    </table>  

 

Js代码   收藏代码
  1. <script>  
  2. $(function(){  
  3.     $(".datepicker-target").each(function(){  
  4.         var value=$(this).html();  
  5.             var next=$(this).next().html();  
  6.              if(next!=null){  
  7.                  if(value>next){  
  8.                      alert("前面的时间大于后面的时间");  
  9.                      return;   
  10.                  }  
  11.              }  
  12.           
  13.     });  

 为什么next的值是null,怎么获取next的值?

 
2014年5月18日 20:43
 
 
 
 

4个答案按时间排序按投票排序

00

你是想获取支付金额么? 
next()官方文档是这样描述的 

.next() 
Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector. 
[/html] 
就是获取下一个兄弟节点 
很明显楼主你给出的html中div没有下一个兄弟节点,如果你想获取支付金额,你可以通过 
div的parent获取td ,next获取下一个相邻的td标签,通过td的children获取input 
然后就可以根据input标签的value获取支付金额了。 
具体代码如下: 


$("#okBtn").on('click',function(){ 
$.each($(".datepicker-target"),function(i,item){ 
console.info($(item).parent().next().children()[0].value); 
}); 
}); 

[/js] 
希望可以帮到您!

2014年5月19日 10:51
 
00

var next=$(this).next().html(); 
你这里$(this).next()获得的是$(".datepicker-target")返回的集合的所有后面的元素, 
也就是说也是一个集合,所以获得的不是你想要的结果,应该改成这样 

$(function(){  
    var id=1; 
    $(".datepicker-target").each(function(){  
        var value=$(this).html(); 
        var idVal="#rtime"+id; 
            var next=$(this).next(idVal).html();  
             if(next!=null){  
                 if(value>next){  
                     alert("前面的时间大于后面的时间");  
                     return;   
                 }  
             }  
        ++id; 
    }); 

2014年5月18日 22:03
 
00

<td><div id='rtime11' class="datepicker-target">2014-05-11</div></td>  

是文本值啊 要通过html()来获取到啊! 

2014年5月18日 21:48
 
00

 

Java代码   收藏代码
  1. 你这样取不到next的  
  2. 如<td><div id='rtime12' class="datepicker-target">2014-05-12</div></td>    
  3.   
  4. 这条记录你的div的next是空的  
  5.   
  6. 除非你的是这样的  
  7. <td>  
  8. <div id='rtime12' class="datepicker-target">2014-05-12</div>  
  9. <div>测试数据</div>  
  10. </td>  
  11.    
  12. var next=$(this).next().html();  
  13. 这样的你的next就是 测试数据了  

 

2014年5月18日 21:15
 

 

 

 

 

最后解决:

            var times=$("time");
            var length=times.length;
            for(var i=0;i<length;i++){
                var value=$(times[i]).datepicker('getFormattedDate');
                if(length>1){
                    if(i<length-1){
                      var nextValue=$(times[i+1]).datepicker('getFormattedDate');         
                        if(value>nextValue){
                            bootbox.alert("后面的支付之间不能小于前面的支付时间");
                            return;
                        }
                    }else{
                        var v1=times[i-2];
                        var v2=times[i-1];
                        if(v1>v2){
                            bootbox.alert("后面的支付之间不能小于前面的支付时间");
                            return;
                        }
                    }
                }

            }

 

 

 

 

 

 

 

 

你可能感兴趣的:(工作)