如何突破nextAll()函数

时间:2011-05-10 14:43:00

标签: jquery

我有这个功能:

$('.trackInputHours').change(function() {
    var changeVal=$(this).val();
    $(this).closest('.trackOn').nextAll('.trackOn').find('.trackInputHours').val(function(i, v){
        if((v=='??') || (v<changeVal)) {
            return changeVal; 
        } 
    });
});             

我希望在nextAll()时暂停v==changeVal;保留这些元素的旧值。

一种} else break;

我该怎么做?

2 个答案:

答案 0 :(得分:3)

如何使用.each()并使用return false来停止迭代。

$('.trackInputHours').change(function() {
    var changeVal=$(this).val();
    $(this).closest('.trackOn').nextAll('.trackOn').find('.trackInputHours').each(function(){
        var v = $(this).val();
        if((v=='??') || (v<changeVal)) {
            $(this).val(changeVal);
        } 
        if(changeVal == v){
            return false;
        }
    });
});  

<强> Example on jsfiddle

输入5,它会更改所有<input type="text"/>,直到达到5

答案 1 :(得分:2)

也许代替nextAll,nextUntil函数可以做你想要的吗?