首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果数字大于值,则将其增量为1。

如果数字大于值,则将其增量为1。
EN

Stack Overflow用户
提问于 2017-05-26 07:50:14
回答 1查看 317关注 0票数 0

我有一个已插入新行的列表。我希望后面所有的序列号都增加一个。

代码语言:javascript
复制
<div class="modal" id="insertroom" style="display: none;">
    <button class="dismiss right button"><i class="fa fa-close"></i></button>
    <h3>Insert a room in the route</h3>
    <p><span class="fixed-width">Room name:</span>
       <input name="room_id" id="room_id"/>
          </p>
      <p><span class="fixed-width">Sequence number in the route:</span> <input type="number" id="newsequencenumber" name="sequence" value=""></p>
    <p><span class="fixed-width">Route name:</span>
       <input name="route_number" id="route_number"/>
          </p>
     <p><input type="button" class="button" id="insertdetails" name="insertdetails" value="Insert details"></p>
</div>

   <ul class="ui-listview">
      <li><span class="half-fixed-width">AB101B</span> 
     Sequence: 
         <input type="number" class="sequence" name="sequence" value="1"> 
         <a class="button inserthere" title="insert room here" href="#" rel="1">
            <i class="fa fa-plus-square"></i>
         </a> 
      </li>

我编写了下面的代码,但它似乎忽略了if(new_sequence_number > thisval)部分,因为它将所有数字递增1,而不仅仅是值大于插入行序列号的数字。

代码语言:javascript
复制
 $('#insertdetails').on('click', function() {
  /*get values input into modal */
  var new_sequence_number = $('#insertroom #newsequencenumber').val();
  var new_room_id = $('#insertroom #room_id').val();
  var new_route_id = $('#insertroom #route_number').val();
  /*put those values into the new row */
  $('#new_room_id' + new_sequence_number).val(new_room_id);
  $('#new_route_id' + new_sequence_number).val(new_route_id);
  $('#insertroom').hide();
  $('.overlay').hide();

  $('.sequence').filter(function(new_sequence_number) {
    var thisval = parseInt($(this).val());
    var plusone = thisval + 1;
    if(thisval > new_sequence_number) {
      $(this).val(plusone);
    }
  });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-26 12:23:30

函数参数中的new_sequence_number是一个新变量,不会引用它上面声明的'new_sequence_number‘。可以省略该参数以使用外部变量。

代码语言:javascript
复制
  $('.sequence').each(function() {
    // ..
    if(thisval >= new_sequence_number) {
    //....

纯粹是因为答案本身似乎很短,下面是另一种选择:D

val()可以将一个函数作为可以操作该值的参数。这种方法的缺点是所有输入都被设置,即使它们保持不变。好处是,所有的逻辑都在一个短的、单一的函数调用中。

代码语言:javascript
复制
  $('.sequence').val(function(ind,v) {      
    return (v = +v) < new_sequence_number ? v : ++v;
  });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44196356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档