Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 由于运算符优先级而导致的意外值赋值?_Javascript_Jquery - Fatal编程技术网

Javascript 由于运算符优先级而导致的意外值赋值?

Javascript 由于运算符优先级而导致的意外值赋值?,javascript,jquery,Javascript,Jquery,基于完全错误逻辑的原始问题:O $(function() { var x=0,y=1; $("#div_id").find("input:text").each(function (i, input) { $(this).val(""+(i % 2 == 0)?x++:y++); }); }); 如果我从值中删除+,我会得到错误的结果 而不是我想要的,这是: 如果我使用道具也一样: $(this).prop("value",""+(i % 2 == 0)?x+

基于完全错误逻辑的原始问题:O

$(function() {
  var x=0,y=1;
  $("#div_id").find("input:text").each(function (i, input)  {
    $(this).val(""+(i % 2 == 0)?x++:y++);
  });
});  
如果我从值中删除+,我会得到错误的结果

而不是我想要的,这是:

如果我使用道具也一样:

    $(this).prop("value",""+(i % 2 == 0)?x++:y++);
如果我在++

我忽略了什么?这是显而易见的吗

更新:我完全错过了这里的船

下面是我打算编写的代码,它在没有

$(function() {
  var x=0,y=1;
  var inputs = $("#div_id").find("input:text");
  var y = Math.ceil(inputs.size()/2);
  inputs.each(function (i, input)  {
    $(this).prop("value",(i % 2 == 0)?++x:++y);
  });
});  
它似乎是从表达式的左到右的+运算符。如果删除+仅i%2==0,则条件将成为条件运算符的一部分,条件运算符的计算结果将为true或false。但若包含,它的计算结果将不会是布尔值,而是字符串,并且将始终为真

有了字符串,你将永远得到真实

alert("" + false ? "true" : "false");
它似乎是从表达式的左到右的+运算符。如果删除+仅i%2==0,则条件将成为条件运算符的一部分,条件运算符的计算结果将为true或false。但若包含,它的计算结果将不会是布尔值,而是字符串,并且将始终为真

有了字符串,你将永远得到真实

alert("" + false ? "true" : "false");
被解释为参见

and+i%2==0始终为真,因为true和false都是非空字符串。因此,在您的示例中,您一直在使用x++而忽略了y++分支

被解释为参见


and+i%2==0始终为真,因为true和false都是非空字符串。因此,在您的示例中,您一直在使用x++而忽略了y++分支。

+1。这是因为.得到了代码,可以用我想要的布尔值做我想要的事情-谢谢+1。这是因为。有了代码可以用我想要的布尔值做我想要的-谢谢显而易见的解决方法是$This。vali:你只是从0开始计算,不是吗?显而易见的解决方法是$This。vali:你只是从0开始计算,不是吗?
("" + (i % 2 == 0)) ? x++ : y++