使用什么来代替 Object.keys()?

2023-11-27

我需要在 Jquery 中找到一些可以在 IE8 和真实浏览器中工作的东西。我是 Jquery 的新手,以下是我在现代浏览器中运行的代码:

$('#FIELD_'+office_id).on('change',function(){
    offices = $(this).val();
for(var i=0; i<=Object.keys(southland.address).length;i++){
        if(offices == Object.keys(southland.address)[i]){
            address = southland.address[offices]Object.keys(southland.address[offices])[0]];
        }
    }

其中 Southland.address 来自外部数组。这在 Chrome、IE10 和 FF 中完美运行,我能为 IE8 做什么?


要在旧版浏览器中支持 Object.keys,您可以使用以下代码片段:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys#Compatibility

if (!Object.keys) {
  Object.keys = (function () {
    var hasOwnProperty = Object.prototype.hasOwnProperty,
        hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
        dontEnums = [
          'toString',
          'toLocaleString',
          'valueOf',
          'hasOwnProperty',
          'isPrototypeOf',
          'propertyIsEnumerable',
          'constructor'
        ],
        dontEnumsLength = dontEnums.length;

    return function (obj) {
      if (typeof obj !== 'object' && typeof obj !== 'function' || obj === null) throw new TypeError('Object.keys called on non-object');

      var result = [];

      for (var prop in obj) {
        if (hasOwnProperty.call(obj, prop)) result.push(prop);
      }

      if (hasDontEnumBug) {
        for (var i=0; i < dontEnumsLength; i++) {
          if (hasOwnProperty.call(obj, dontEnums[i])) result.push(dontEnums[i]);
        }
      }
      return result;
    };
  })();
}

或这个polyfill(也包括其他垫片):

https://github.com/kriskowal/es5-shim/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用什么来代替 Object.keys()? 的相关文章

  • ajax 成功后循环 JSON 响应

    抱歉 这是重复的here https stackoverflow com questions 733314 jquery loop over json result from ajax success问过 但我对此很陌生 所以我想知道该怎么
  • 使用 JavaScript 填写 PDF 表单

    这就是我所拥有的 用户填写很长的 html 表单 用户获取下载不同 pdf 的链接 这是可填写的表格 链接是使用 javascript 生成的 用户单击链接 生成 url 使用用户之前提交的数据 在表单中处理数据并完成字段 这是在表单内使用
  • 使用 word_number 值对 javascript 数组进行排序

    如何对数组进行排序 var arr new Array word 12 word 59 word 17 这样我得到 word 12 word 17 word 59 Thanks 您需要编写一个排序方法 您可以编写任何您喜欢的方法 该方法在
  • 将箭头添加到 Twitter Bootstrap 的下拉药丸中?

    我的 Twitter 引导下拉按钮成功工作 但我有一个小问题 这里的黑色导航栏 http twitter github com bootstrap javascript html dropdowns http twitter github
  • jQuery 问题:它的真正含义是什么?

    function window undefined jquery code jQuery window 它到底意味着什么 是不是也意味着 document ready 或者只是两种不同的东西 已经有两个答案 但这是我对代码缺失端的猜测 fu
  • JQuery _renderItem 没有被调用

    我正在尝试使用 renderItem 函数创建自定义 ui menu item 元素 但经过可能尝试后 我什至无法调用该函数 自动完成功能正在工作 但就像 renderItem 函数不存在一样 这是我的脚本部分
  • jQuery live() 和ready() 之间的区别?

    两者之间的确切区别是什么live and ready 编辑 发现die http docs jquery com Events die是相反的live ready http docs jquery com Events ready让你注册一
  • 识别http链接并创建锚标记

    我正在尝试解析一些字符串 它嵌入了一些 http 链接 我想使用 jquery 在此字符串中动态创建锚标记 然后将它们显示在前端 以便用户可以单击它们 有没有办法做到这一点 Thanks 你可以这样做 function get the st
  • 如何在放置后拖动图像克隆?

    我的图像在旋转后可以拖动 但是当图像掉落时我无法第一次拖动图像 这是图像拖放的代码 dhtmlgoodies xpPane li rotatable 我可以拖动此图像克隆并将其放在 工作区域 上 我无法在放置后第一次拖动图像克隆 但克隆在旋
  • 如何使用 jQuery 和“this”捕获更改的表单元素值

    我有以下代码 每当我的 Web 表单中发生元素更改时 该代码都会起作用 我一直在纠结的是如何捕捉表单字段元素 id name and 改变值当更改事件被触发时 谁能帮我解决这个问题吗 Thanks JavaScript
  • 在一个区域显示隐藏 div

    我一整天都在寻找与我想要的东西相匹配的东西 但我在任何地方都找不到任何东西 我想创建一个显示隐藏 div 在一个固定区域显示 隐藏 div 我想要在页面的一半上有一个拇指图库 在页面的另一半上我想显示与该拇指相关的完整配置文件 因此当我单击
  • JQuery 使用 Bootstrap 4 验证表单输入并突出显示标签[重复]

    这个问题在这里已经有答案了 我已读过 我已读过带有 jQ uery 验证插件的 Bootstrap https stackoverflow com questions 18754020 bootstrap with jquery valid
  • 函数的通用 .length 检查

    当我用 JS 或 jQuery 编写函数并且需要参数时 我使用if something length诡计 this example function e if e length blablabla else return false 但我不
  • 使用 fadeIn() 时,jQuery“未捕获类型错误:未定义不是函数”;

    我是 JS 新手 正在编写一个基本的富含 jQuery 的网页 其中同一文档中的每个页面都具有淡入 淡出功能 使用具有单独 ID 的相同 div 元素 无论如何 当我尝试淡入当前页面时 我收到错误 未捕获的类型错误 未定义不是函数 我在网上
  • 如何使用 datatables.js 应用条件格式?

    我有一个使用 datatables js 的 html 表 但无法找到如何应用条件格式的清晰示例 当第 4 列中的单元格的值 0 并且第 5 列中的值为 0 时 如何更改该单元格的文本颜色
  • 在选择下拉列表中选择特定选项时添加输入框

    我需要在选择选项时将输入添加到选择选项中 每当用户选择 其他 时 就会出现一个输入框供用户输入数据 HTML
  • jQuery 删除函数真的删除 Dom 元素吗?

    我真的想知道 jQuery 是否remove http api jquery com remove 函数确实从 DOM 中删除元素 首先 我看了here https stackoverflow com questions 2185760 j
  • AngularJS 与(Angular JS + jQuery)

    我有一个关于仅使用 AngularJS 和纯 JavaScript 以及使用 AngularJS 和 jQuery 时的性能问题 ex app directive fitHeight function window return restr
  • jQuery document read() 函数可能需要很长时间才能执行

    我的问题是 有时一段 JavaScript 通常是 Google Analytics 可能需要很长时间才能加载 尽管 HTML 准备好 遍历和操作 并不重要 如果我使用以下代码 document ready function p text
  • bootstrap-datetimepicker 仅显示日期

    我正在用这个repo https github com smalot bootstrap datetimepicker由 smalot 提供 我只想选择并显示日期 对于其他一些地方 我显示数据和时间 因此选择此存储库 我可以设法仅使用它来选

随机推荐

  • PHP:在mysql中的时间戳值内分割日期和时间

    我在数据库表中有一个名为 时间戳 的字段 它以以下格式存储值 YYYY MM DD HH MM SS 我想分开 然后获取变量中的日期 YYYY MM DD 以及另一个变量中的时间 HH MM SS 例子 timestamp 2012 10
  • 跨内存管理器边界传递 Delphi const 字符串参数是否安全?

    主题 我想使用字符串而不是 PChar 因为这样可以省去很多转换 但如果我这样做 procedure SomeExternalProc s string external SOMEDLL DLL 然后使用非共享内存管理器在其他一些项目中实现
  • 如何在 Github actions 中设置 Dockerfile ARG

    我有一个适用于我的 Node js 服务之一的 Dockerfile 我尝试使用 Github 操作将其推送到我的 Digitalocean 注册表 我的 Node js 服务需要一个由我自己在 npm js 注册表上托管的私有包 在我的
  • 在 javascript 或 bootstrap 中创建可点击的工具提示

    制作如下图所示的可点击工具提示的最佳方法是什么 我应该使用 bootstrap 还是其他库 Thanks 干得好 Pops popover html true content function return popover content
  • Qt如何捕获指示所有gui元素已准备就绪的事件

    我想知道是否有可能捕获所有时生成的事件 Qt 对象已初始化并准备就绪 看来有些事情不能在window的构造函数中完成 它们在插槽实现中工作得很好 例如 当我想访问应用程序的根窗口时 我会这样做 in h MainWindow rootWin
  • Jquery:ajax post 和编码

    我无法理解为什么我无法从服务器答案中获得正确的 ISO 8859 1 字符集 由于这是一项针对遗留代码的工作 我几乎无法更改页面上的字符集编码 我使用 JQuery 调用 post server side code t ctext i io
  • 通过 Spark 写入 HBase:任务不可序列化

    我正在尝试使用 Spark 1 0 在 HBase 0 96 0 hadoop2 中写入一些简单的数据 但我不断遇到序列化问题 这是相关代码 import org apache hadoop hbase client import org
  • HTML - 属性与属性[重复]

    这个问题在这里已经有答案了 Is idHTML 的属性或属性 我应该做什么 selector attr id or selector prop id 我读了很多文章 但仍然很困惑 有人可以用非常简单的语言向我解释 HTML JS 中的属性和
  • 在哪里可以找到面部检测软件、算法等? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我对编写依赖于能够识别图片 或视频帧 中是否有面孔的软件感兴趣 它不需要识别人脸 因此除了以下指标之外没有其他指标 图片中是否有人脸 或不止一张 眼
  • Liquibase 命令行在 sql 中创建 diff 更改日志

    我实际上在 Windows 上的命令行中使用 Liquibase 并且尝试创建一个表示两个数据库之间差异的 sql 脚本 不幸的是我只得到 xml 文件作为回报 你能帮助我吗 我的命令行 liquidbase bat driver com
  • 在 Swift 中添加时间偏移

    我的数据库中有很多不同的显示时间 并且希望通过创建偏移量来根据用户时区显示正确的时间 我正在获取用户与 GMT 的时区偏移量 然后首先将其转换为小时 NSTimeZone localTimeZone secondsFromGMT 60 60
  • 多核CPU上32位读取的原子性

    注意 我根据我认为可能提供帮助的人在哪里添加了标签到这个问题 所以请不要喊 在我的 VS 2017 64 位项目中 我有一个 32 位长值m lClosed 当我想更新它时 我使用其中之一Interlocked函数族 考虑这段代码 在线程
  • 在配置文件脚本中使用十六进制值设置 Powershell 颜色

    我知道我可以通过在我的个人资料中设置以下内容来更改 PowerShell 控制台颜色 Host UI RawUI BackgroundColor White Clear Host 但是 在 Powershell 控制台中 您可以转到 属性
  • ImageMagick 安全策略“PDF”阻止转换

    Imagemagick 安全策略似乎不允许我执行从 pdf 到 png 的转换 转换其他扩展名似乎可以工作 只是不能从 pdf 转换 自从安装以来 我没有更改任何 imagemagick 设置 如果操作系统很重要的话 我正在使用 Arch
  • 从 Eclipse 调试在 ScriptEngine 中运行的 Groovy 脚本

    我有一个 Groovy 脚本 其运行方式如下 File scriptFile ScriptEngine engine String script FileUtils readFileToString scriptFile Object ev
  • 以编程方式添加单词进行单词预测的问题

    我在用用户字典 Words班级的addWord功能将单词添加到词典中 以便它们可以显示在文本预测中 这些词确实存在于字典中APP ID 0并可用于默认的 Android 键盘 然而 我使用的是 Swift 键盘 它没有考虑这些词的预测 我正
  • Angular4 中的自定义字体导入

    我使用 Angular4 但在使用自定义字体时遇到问题 我尝试使用 font face 但它给了我无法找到字体文件的错误 我需要做什么才能包含此文件以便在我的组件中使用它 font face font family lcd plain sr
  • 如何“docker exec”从头构建的容器?

    我在尝试着docker exec从头开始构建的容器 例如 NATS 容器 看起来很简单 但由于它是从头开始构建的 我无法访问 bin bash bin sh以及任何此类命令 我收到错误 oci runtime error 找不到命令 找不到
  • Windows 8 Metro 应用程序文件共享访问

    我正在开发一个 Windows 8 Metro 应用程序 我们打算将其部署到我们公司内的几台平板电脑上 它不适用于 Windows 应用商店 我们需要该应用程序访问公司网络共享上的某些目录 但强制用户使用FilePicker这不是我们想要的
  • 使用什么来代替 Object.keys()?

    我需要在 Jquery 中找到一些可以在 IE8 和真实浏览器中工作的东西 我是 Jquery 的新手 以下是我在现代浏览器中运行的代码 FIELD office id on change function offices this val