Jquery 无法理解此函数的工作原理
检查我正在使用的元素是否存在Jquery 无法理解此函数的工作原理,jquery,Jquery,检查我正在使用的元素是否存在 if($('#id').length) //statement 1 else //statement 2 这对我来说很好。但当条件为true时,将执行语句1,否则将执行语句2。但是,当长度返回长度时,它是如何工作的(它是一个类似于1,2…) 我想如果长度是0,那么对于0,它将取false。但剩下的病例呢。我无法理解这里发生了什么。提前感谢…来自: 任何不可用的值 未定义、null、0、NaN或空字符串(“”)以及任何对象, 包
if($('#id').length)
//statement 1
else
//statement 2
这对我来说很好。但当条件为true时,将执行语句1,否则将执行语句2。但是,当长度返回长度时,它是如何工作的(它是一个类似于1,2…)
我想如果长度是0,那么对于0
,它将取false
。但剩下的病例呢。我无法理解这里发生了什么。提前感谢…来自:
任何不可用的值
未定义、null、0、NaN或空字符串(“”)以及任何对象,
包括值为false的布尔对象,其计算结果为true
当传递给条件语句时
这意味着,当长度为1
(或更大,但此选择器无法实现)时,其计算结果为true
因此,当找到id为
id
的元素时,执行语句1
。当长度为0
时,执行语句2
。Javascript有这样一个概念,其中0
、false、未定义的和null
等值被认为是虚假的,而其他值则被认为是真实的
如果长度为0
,则变为错误,条件将失败,否则,如果长度为=0则该值被视为真实值,条件将成功。是,这就是javascript的工作方式
这里有一个解释
以下是chrome控制台的一些输出,可能会帮助您:
> Boolean(1) //The number 1
true
> Boolean(0) //The number 0
false
> Boolean(0.0000000000000000000000000000000000000000001) //A very close to 0 float
true
> Boolean(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001) //This is where it starts rounding down to zero
false
> Boolean(false) //A boolean "false"
false
> Boolean(NaN) //Not a number
false
> Boolean(undefined) //Undefined
false
> Boolean("") //An empty string
false
> Boolean(-3) //A negative number
true
> Boolean("string") //A string that is not empty
true
> Boolean([]) //An empty array
true
> Boolean({}) //An empty object
true
> Boolean(2.5) //A float
true
…因此,如果长度为0(如中所示;找不到元素),则它不会计算为true
,因此选择}else{
语句。我认为$('#id')。length返回一个字符串。请尝试praseInt()关于结果…@JayBhatt No,它返回一个数字。为什么要投否决票。请在投否决票之前留下评论