我使用jQuery来获取元素的高度。 但是如果元素不存在,则以下代码将返回NULL:
$height = $('#menu li.active ul').height(); // returns integer or null
使用以下代码在各种情况下获取整数值是否是跨浏览器的安全方式:
$height = $('#menu li.active ul').height() + 0;
答案 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;
这里假值为..
答案 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>