Element.value ===“”和Element.length === 0之间的区别

时间:2015-01-17 13:19:46

标签: javascript

我很确定这对大多数人来说是显而易见的,但我不知怎的考虑到这一点。请善待;)

我意识到Element.value返回StringElement.length返回Int,但我仍然不确定这两个方法是否返回相同的值(请参阅示例) )。

玩具示例

我有以下输入框

<input id="myInput" type="text" value="">

和两个单独的函数,使用以下方法

---method1---
var x = document.getElementById("myInput").length;

---method2---
var y = document.getElementById("myInput").value;

y值为0,但x的值是多少? null0

换句话说

Element.value === ""Element.length === 0表达同样的事情?

2 个答案:

答案 0 :(得分:3)

var x = document.getElementById("myInput").length;

此声明将为您undefined。因为长度是 数组 的属性, 字符串 nodeList个对象。你不能在html对象上实现length属性。

如果你没有在文本字段中输入任何文本,则

y将为零。否则,它将为您提供在文本字段中写入波形的值。如果您想要输入字符串的长度,请尝试x.value.length < / p>

答案 1 :(得分:2)

Element.value会在元素上返回一个允许用户输入的字符串。此属性由系统提供。 Element.length不是财产。

JavaScript中的各种其他对象确实具有属性lengthArray和所有数组对象都有length属性。它们返回数组的长度。一个阵列示例是节点列表。这是一个元素列表。例如,函数getElementsByTagName返回节点列表。您可以使用length检索此列表的长度。字符串对象也有一个length属性(String.prototype.length)。它返回字符串的长度。 (字符串也是一种数组)。见这个例子:

 alert("test"[0]);

这会提醒t。因此,您可以循环遍历字符串,就像它在数组中一样。

总结:Element.value === "" and Element.length === 0不相同,因为它们彼此无关。 Element.value === ""Element.value.length === 0几乎做同样的事情。第一个检查返回的字符串是否为空,而第二个检查该字符串的长度。在这两种情况下,字符串的长度为0