迭代div name取不到next 的值
 <table class="table table-bordered" style="width:100%;">
        <tbody id='tab2' class='table table-hover'><tr><th>序号</th><th>支付时间</th><th>支付金额</th><th>是否已出账</th></tr>
        <tr>
            <td>1</td>
            <td ><div id="rtime1" class="datepicker-target">2014-05-01</div></td>
            <td><input type="text" name="money"/> </td>
            <td>否</td>
        </tr>
        <tr>
            <td>2</td>
            <td><div id='rtime2' class="datepicker-target">2014-05-02</div></td>
            <td><input type="text" name="money"/></td>
            <td>否</td>
        </tr>
        <tr>
            <td>3</td>
            <td><div id='rtime3' class="datepicker-target">2014-05-03</div></td>
            <td><input type="text" name="money"/></td>
            <td>否</td>
        </tr>
        <tr>
            <td>4</td>
            <td><div id='rtime4' class="datepicker-target">2014-05-04</div></td>
            <td><input type="text" name="money"/></td>
            <td>否</td>
        </tr>
        <tr>
            <td>5</td>
            <td><div id='rtime5' class="datepicker-target">2014-05-05</div></td>
            <td><input type="text" name="money"/></td>
            <td>否</td>
        </tr>

        <tr>
            <td>6</td>
            <td><div id='rtime6' class="datepicker-target">2014-05-06</div></td>
            <td><input type="text" name="money"/></td>
            <td>否</td>
        </tr>
        <tr>
            <td>7</td>
            <td><div id='rtime7' class="datepicker-target">2014-05-07</div></td>
            <td><input type="text" name="money"/></td>
            <td>否</td>
        </tr>
        <tr>
            <td>8</td>
            <td><div id='rtime8' class="datepicker-target">2014-05-08</div></td>
            <td><input type="text" name="money"/></td>
            <td>否</td>
        </tr>
        <tr>
            <td>9</td>
            <td><div id='rtime9' class="datepicker-target">2014-05-19</div></td>
            <td><input type="text" name="money"/></td>
            <td>否</td>
        </tr>
        <tr>
            <td>10</td>
            <td><div id='rtime10' class="datepicker-target">2014-05-10</div></td>
            <td><input type="text" name="money"/></td>
            <td>否</td>
        </tr>
        <tr>
            <td>11</td>
            <td><div id='rtime11' class="datepicker-target">2014-05-11</div></td>
            <td><input type="text" name="money"/></td>
            <td>否</td>
        </tr>
        <tr>
            <td>12</td>
            <td><div id='rtime12' class="datepicker-target">2014-05-12</div></td>
            <td><input type="text" name="money"/></td>
            <td>否</td>
        </tr>
        <tr>
            <td colspan="5" style="text-align: center" >
            <button type="button" class="btn" id="okBtn">
                <span>保存</span>
            </button>
            <button type="button" class="btn" id="backBtn">
                <span>返回</span>
            </button>
        </td></tr>
        </tbody>
    </table>

 

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

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

5个回答

你是想获取支付金额么?
next()官方文档是这样描述的
[code="html"]
.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获取支付金额了。
具体代码如下:
[code="js"]

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

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

zhengun
zhengun 我想取的时支付时间,所有的支付时间
接近 6 年之前 回复

[code="java"]
你这样取不到next的

2014-05-12

这条记录你的div的next是空的

除非你的是这样的

2014-05-12
测试数据

var next=$(this).next().html();
这样的你的next就是 测试数据了
[/code]

zhengun
zhengun 恩,谢谢。。。。
接近 6 年之前 回复
bylijinnan
bylijinnan 没错,是这样
接近 6 年之前 回复

2014-05-11

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

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;
});

zhengun
zhengun 最后我是通过div 的name属性来获取值的,这样在动态删除的或者添加的时候,都可以取到值
接近 6 年之前 回复
zhengun
zhengun 呵呵,不过我并不想通过id获取值。应为我在动态删除行和添加行的时候,这个id有变化。所以通过id获取值,有的获取不到
接近 6 年之前 回复

[code="java"]

我只是打印了支付时间,你可以定义个变量来接收。

$(function() {
$("#okBtn").on('click',function(){
$.each($(".datepicker-target"),function(i,item){
console.info($(item).html());
});
});
});

[/code]

zhengun
zhengun 我要取的不是$(item.html) 而是要取得是next,就是那上一个与前一个分别比较,就和冒泡排序比较类似
接近 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问