JavaScript将NULL转换为0

时间:2016-09-02 09:14:54

标签: javascript jquery null integer

我使用jQuery来获取元素的高度。 但是如果元素不存在,则以下代码将返回NULL:

$height = $('#menu li.active ul').height(); // returns integer or null

使用以下代码在各种情况下获取整数值是否是跨浏览器的安全方式:

$height = $('#menu li.active ul').height() + 0;

8 个答案:

答案 0 :(得分:7)

有很多方法可以解决这个问题。你描述的那个,添加一个整数值来强制类型是好的。您还可以明确地转换为数字:

$height = Number($('#menu li.active ul').height());
// or:
$height = +$('#menu li.active ul').height();

或者您可以使用逻辑运算符null强制false

$height = $('#menu li.active ul').height() || 0;

答案 1 :(得分:3)

这是安全的,是的。

更短的选择:

$height = +$('#menu li.active ul').height();

(注意+之前的$

答案 2 :(得分:2)

这是一种更好的方法...

if($('#menu li.active ul').length > 0){
   $height = $('#menu li.active ul').height();
}else{
    ......
}

答案 3 :(得分:2)

我的简短解决方案是: $height = $('#menu li.active ul').height() || 0

如果您想要更具描述性的解决方案,可以查看其他用户的答案。

编辑:这也取决于jQuery版本。

答案 4 :(得分:1)

最简单的方法......

$height = $('#menu li.active ul').height() || 0;

这里假值为..

  • 未定义
  • " "
  • 0
  • NaN

答案 5 :(得分:0)

检查元素是否存在:

var $height = 0;
if($('#menu li.active ul').length > 0){
  $height = $('#menu li.active ul').height();
}

答案 6 :(得分:0)

您可以检查send()是否不是$("#menu li.active ul")

null

答案 7 :(得分:0)

我使用了上面接受的答案和其他练习,这给了我很好的结果。

我们可以与parseFloat或parseInt一起使用,它们给出0或实际值。参见演示特别的最后结果:

function myFunction() {
  var a = parseFloat("10") + "<br>";
  var b = parseFloat("10.00") + "<br>";
  var c = parseFloat("10.33") + "<br>";
  var d = parseFloat("34 45 66") + "<br>";
  var e = parseFloat("   60   ") + "<br>";
  var f = parseFloat("40 years") + "<br>";
  var g = (parseFloat("1.1234") ||0) + "<br>";

  var n = a + b + c + d + e + f + g;
  document.getElementById("demo").innerHTML = n;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>Click the button to parse different strings.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>