Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript while()_Javascript_Jquery - Fatal编程技术网

Javascript while()

Javascript while(),javascript,jquery,Javascript,Jquery,以下是HTML: <form> <textarea id="input1"></textarea> <textarea id="input2"></textarea> <span></span> </form> 每次“c”达到140的倍数时,我需要用“b”加上它, 我试着这样做: while(c%140 == 0){ c=c+b; } 在第140个关键点,是的,它被添加了,

以下是HTML:

<form>
   <textarea id="input1"></textarea>
   <textarea id="input2"></textarea>
   <span></span>
</form>
每次“c”达到140的倍数时,我需要用“b”加上它, 我试着这样做:

while(c%140 == 0){
   c=c+b;
}
在第140个关键点,是的,它被添加了,但下一个关键点(第141个)等“c”返回到它的notihng附加值。如何正确地做到这一点


谢谢。

我不能确定我是否正确地阅读了这个问题,但是如果是一个近似值,解决方法可能很简单,只要在添加
a+b
时去掉
c
前面的
var
。如果希望
c
具有持久值,则需要其作用域位于
keyup
事件处理程序之外

从小提琴上:

$(function() {
   var c = 0;

   $("#input2").keyup( function() {
       var a = $("#input1").val().length;
       var b = $("#input2").val().length;
       c=a+b;
       if(c%140 == 0){
           c=c+b;
       }
       $("span").html(b);
   });

});
请注意,这是一个
if
,而不是
while
。如果它应该是一个while循环,那么这是一个很容易做出的改变

更新 我想我知道这里发生了什么。您希望跟踪多页SMS消息的字符总数。这个问题的答案不是你直接出来问的

以下是新代码:

$(function() {

  $("#input2, #input1").keyup( function() {
    var a = $("#input1").val().length;
    var b = $("#input2").val().length;
    c=a+b;

    c+=Math.floor(c/140)*b;

    $("span").html(c); 
  });

});

现在,这当然假设input1保存您的实际消息,而input2保存需要在每个页面上显示的一些文本。如果这是另一种方式,或者这段代码还有其他用途,请告诉我。

在其他代码的上下文中while循环在哪里?你正在重置c,每个键都在输入2上。我真的不知道你想要实现什么。你能在@Arun创建一个演示吗?是的,就像奥斯汀做的一样,除了$(“span”).html(c),对不起,刚才编辑的问题。无论如何,谢谢大家。
$(function() {

  $("#input2, #input1").keyup( function() {
    var a = $("#input1").val().length;
    var b = $("#input2").val().length;
    c=a+b;

    c+=Math.floor(c/140)*b;

    $("span").html(c); 
  });

});