【发布时间】:2013-12-05 08:33:33
【问题描述】:
我正在使用 IE 11 来模拟旧版本的 IE。以下代码在 IE 9 及更低版本中无法正常工作:
var search_input_val = $.trim($("#search_input").val()).replace(/\s{2,}/g, ' ');
console.log(search_input_val);
var recBox_val_arr = search_input_val.split(/\s+/); // HERE
console.log(recBox_val_arr);
recBox_val_arr 以undefined 的形式记录到控制台。
以上代码在 IE 10 和 11、Firefox、Chrome、Opera 和 Safari 上返回 Array。为什么它在 IE 9 及以下版本中不起作用?
更多详情
鉴于这种情况:
$("#search_input").val() === "ab abc";
search_input_val === "ab abc";
recBox_val_arr 被 IE ≤ 9 记录为 undefined,被 Firefox 记录为 [object Array],被其他浏览器记录为 ["ab", "abc"]。
我正在通过 Google 的 CDN 链接到 jQuery 1.10.2:
//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js
我也尝试了recBox_val_arr = search_input_val.split(' '),但recBox_val_arr 仍然记录为undefined。
【问题讨论】:
-
您能否使用适用于所有其他浏览器的值发布您的 console.log 调用的输出?
-
你用的是什么版本的jQuery? 2.0版本不支持
-
阅读this
-
@JordanGray 发现 split 确实有效,当我尝试调用索引时,我的问题不是这样,例如
recBox_val_arr[0]。 ie9 确实支持它,但是当你console.log时它返回的数组是 undefined 顺便说一句真的很误导。 -
Right here。绝对是在旧版本中测试的最佳方式! :)
标签: javascript jquery internet-explorer split