小编Ste*_*enC的帖子

使用javascript array.length函数的奇怪结果

我有一段JavaScript代码循环表单元素并构建一个对象.我有HTML输入字段和ASP.NET输入字段的混合.ASP.NET将字段的ID更改为xxxxx_yyyy_id形式,因此我尝试使用split函数来提取原始ID.

 // 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;
     }
 });
Run Code Online (Sandbox Code Playgroud)

单步执行上面的代码,第一个id是ctl00_ContentPlaceHolderCol1_forenameField,因此运行tokens.length = 3代码.在第二次迭代中,id是forenameField2所以我希望tokens.length为1,但它实际上是3. else语句永远不会运行.

这可能很简单,但我无法解决这个问题.如果我检查标记数组,它在第二次迭代中只有1个元素.我也尝试在每次迭代后将array.length设置为0.

任何帮助赞赏.

javascript jquery

1
推荐指数
1
解决办法
488
查看次数

标签 统计

javascript ×1

jquery ×1