【问题标题】:Getting variable value as infinity in jquery function在jquery函数中获取变量值作为无穷大
【发布时间】:2015-02-22 12:17:22
【问题描述】:

我正在传递诸如 fun1(this, 1/0) 之类的变量,但我在 jquery 中获得了诸如 fun1(this, infinity) 之类的值。请告诉我如何解决这个问题。

代码如下:

1.传递参数

<input type="button" id="cutdel" onclick="javascript:cutdelete(this,2/0)"/>

2.正在使用的功能

 function cutdelete(button, locGauge) {
     $.blockUI({
         message: $('#deletewire'),
         css: {
             width: '360px',
             top: ($(window).height() - 1000) / 2 + 'px',
             left: ($(window).width() - 360) / 2 + 'px',
             backgroundColor: 'none',
             border: '3px solid #aaa',
             padding: '10px'
         }
     });
     $('#delete').one('click', function() {
         loadCart = true;
         for (var i = 0; i < selectedgaugeArray.length; i++) {
             if (selectedgaugeArray[i] == locGauge) {
                 selectedgaugeArray.splice(i, 1);
                 $(button).parent().parent().remove();
                 break;
             }
         }
         alert(selectedgaugeArray);
         $.unblockUI();
         return false;
     });
     $('#save').click(function() {
         $.unblockUI();
         return false;
     });
 }

这里将 locGuage 作为 1/0 、 2/0 、1:3 传递,但将值作为无穷大。但它适用于整数值。

大家好... 我正在像

一样在脚本本身中渲染 html 内容
content = content + "<tr class=\"selitems\"><td><input  type=\"button\" id=\"cutdel\" style=\"background: #FFFFFF url(images/cutclose.png); width: 14px;height: 14px;border: none;text-align: center;padding: 5px;font-size: 12px;\" onclick=\"javascript:cutdelete(this,"+WireGuage+")\">"+"</input></td>"

这里将 locGuage 作为 onclick=\"javascript:cutdelete(this,"+WireGuage+")\"> 添加到内容中。 所以请告诉我如何将其转换为字符串

答案:

我将变量作为字符串传递

即:我渲染语言变量,如

     var WireGuage ='\''+ $("#WireGuage_"+p).val()+'\'';    

问题解决了。

谢谢大家...感谢您的宝贵时间。

【问题讨论】:

  • 使用onclick="javascript:cutdelete(this,'2/0')",将参数作为字符串传递。
  • 2/0 是除以零运算...将其作为字符串传递,例如 '2/0'
  • 为什么要将整数除以零? (正如您在数学课上所知道的,除以零将导致无穷大)
  • @Satpal — 内在事件属性或 DOM 属性中不需要 javascript:,它被解释为 label。
  • @RobG,完全同意你的看法。我只是使用了 OPs 代码。

标签: javascript jquery


【解决方案1】:

【讨论】:

  • 你是正确的 Chankey Pathak 但如何将变量作为字符串 javascript 传递。我们都认为 var 对。
  • 你像fun1(this, 1/0)一样传递它,把它改成` fun1(this, '1/0')`
  • 实际上,除以零是未定义的,但在某些浮点算术实现中,它具有明确定义的结果。见en.wikipedia.org/wiki/Division_by_zero
【解决方案2】:

1/0 是没有解的算术运算。

在大多数编程语言中,它是DivisionByZeroException。

但是,在 JavaScript 中,您会得到 Infinity。 这在数学中是不正确的,据我所知,因为如果您将 Infinity * 0 相乘,您将不会得到 1(想想 6/2 = 3,如果你乘以 2 * 3,你得到 6)。但这有点道理,因为分母越接近于零,结果就越趋于无穷。

也许您可以将值作为字符串传递,如'1/0'。

【讨论】:

  • 你得到无穷大,因为它是它的正确数学。 OP,正如回答者所说,只需将其作为字符串传递,这样 javascript 就不会尝试“解决”它。
  • @TIMINeutron 如果在数学中假设 1/0 = 无穷大,2/0 = 无穷大,3/0 = 无穷大,那么你假设无穷大 * 0 = 1 ,还有 Infinity * 0 = 2 和 Infinity * 0 = 3。我认为 Math 不支持。
  • @TIMINeutron——在数学中,除以零的结果是不确定的,因为没有数可以与零相乘来得到原始分子。
  • 不确定性不是除以 0(因为它的限制 将 产生无穷大),而是当你做无穷大 * 0 时,因为(正如你们俩所说)你不知道它会产生什么数字(如果不是无穷大)。然后你必须做限制来恢复价值。想想渐近线,你会明白的。确实,它不等于 到无穷大。这也是真的,它不是未定义的,因为它在那个时候趋向无穷大。
  • 据我了解,这不是不确定,没有任何意义。不确定性是 0/0,其中任何数字乘以 0(分母)将得到 0(分子)。因此,0/0 是不确定的,因为它可以是任何值。 1/0 是不可能的,因为没有满足的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-10
  • 2022-08-12
  • 1970-01-01
  • 1970-01-01
  • 2016-03-28
  • 2017-05-05
相关资源
最近更新 更多