我有一段循环访问表单元素并构建对象的JavaScript代码。 我有一个混合的HTML输入字段和ASP.NET输入字段。 ASP.NET将字段的ID更改为xxxxx_yyyy_id形式,所以我试图使用split函数来提取原始ID。使用javascript array.length函数的奇怪结果
// Iterate over all the text fields and build an object
$(':text').each(function() {
var tokens = this.id.split("_");
if (tokens.length = 3) {
// Assume this is a .net inputbox - extract the original id
inFormData[tokens[2]] = this.value;
} else {
inFormData[this.id] = this.value;
}
});
通过上述代码步进,所述第一ID是ctl00_ContentPlaceHolderCol1_forenameField,所以tokens.length = 3代码运行。 在第二次迭代中,id是forenameField2,所以我期望tokens.length是1,但实际上是3. else语句永远不会运行。
这可能是简单的,但我无法解决它。如果我检查令牌数组,它在第二次迭代中只有1个元素。我也试过在每次迭代之后将array.length设置为0。
任何帮助表示赞赏。
'='是赋值 - 你的意思''==(甚至更好''===) – Alnitak