我正在使用jQuery来获取元素的高度。但是如果该元素不存在,则以下代码将返回NULL:
$height = $('#menu li.active ul').height(); // returns integer or null
使用以下代码在各种情况下获取整数值是一种跨浏览器的安全方式:
$height = $('#menu li.active ul').height() + 0;
有很多方法可以解决这个问题。你描述的那个,添加一个整数值来强制类型是好的。您还可以显式转换为数字:
$height = Number($('#menu li.active ul').height());
// or:
$height = +$('#menu li.active ul').height();
或者你可以使用逻辑运算符作为null
强制到false
:
$height = $('#menu li.active ul').height() || 0;
这是安全的,是的。
更短的选择:
$height = +$('#menu li.active ul').height();
(注意+
之前的$
)
这是一个更好的方法...
if($('#menu li.active ul').length > 0){
$height = $('#menu li.active ul').height();
}else{
......
}
我的简短解决方案是:$height = $('#menu li.active ul').height() || 0
。
如果您需要更具描述性的解决方案,可以查看其他用户的答案。
编辑:这也取决于jQuery版本。
最简单的方法..
$height = $('#menu li.active ul').height() || 0;
这里假值将是......
只需检查元素是否存在:
var $height = 0;
if($('#menu li.active ul').length > 0){
$height = $('#menu li.active ul').height();
}
你可以检查$("#menu li.active ul")
是不是null
:
$height = $('#menu li.active ul') != null ? $('#menu li.active ul').height() : 0;
我使用了上面接受的答案和其他练习,这给了我一个很好的结果。
我们可以使用parseFloat或parseInt,它们给出0或实际值。最后看一下demo最后的结果:
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>