没有太多运气。我正在尝试确定var是否为空。
$('#content').mouseup(function() {
var selection = getSelected();
if (typeof(selection) !=='undefined') {
alert(selection);
}
});
这样做是抓取用户选择的任何文本 - 但即使用户只是鼠标上的div,它也显示空警报。
答案 0 :(得分:15)
请说:
if (selection) {
alert(selection);
}
如果定义了成员,非空,非假,非空字符串或非零,则Javascript中的简单true / false测试返回true。
此外,在Javascript中,某些内容可以等于值undefined
或实际上未定义(意味着,不存在此类命名对象)。 e.g。
var x = undefined;
alert(x===undefined); /* true; */
alert(x); /* false */
x=1;
alert(x); /* true */
alert(y===undefined); /* reference error - there's nothing called y */
alert(y); /* reference error */
alert(typeof y === "undefined"); /* true */
如下面的评论所述,如果您不确定是否存在某些内容,则应首先使用typeof
进行测试。
答案 1 :(得分:8)
您的代码对于检测未定义的值非常准确,这意味着即使没有选择,该函数也会返回某种值。
如果函数返回一个选择对象(如window.getSelection
函数),则检查isCollapsed
属性以查看选择是否为空:
if (!selection.isCollapsed) ...
答案 2 :(得分:3)
你可以简单地使用:
if (selection) {
alert(selection);
}