javascript - 如何使 IE9 中的 Array.toString() 兼容现代浏览器

标签 javascript arrays internet-explorer dom tostring

我想将数组值分配给 DOM 中的属性:

var myArray = [1, 2, 3];
elem.setAttribute('value', myArray)

在现代浏览器中你会得到这样的结果:

<input value="1,2,3">

但在较旧的版本中(最高为 IE9):

<input value="[object]">

JSON.stringify 不是解决方案,因为这会生成:

<input value="[1,2,3]">

问题是 myArray.toString() 在现代浏览器中输出:

1,2,3

在年长的时候:

[object]

我该如何解决这个问题?

最佳答案

如果您打算使用 toString 方法,您可以像这样覆盖它:

var myArray = [1, 2, 3];

Array.prototype.toString = function () {
    return this.join(', ');
}

console.log(myArray.toString()); //1, 2, 3

这应该适用于大多数旧版浏览器。

fiddle :http://jsfiddle.net/KyleMuir/KUzZL/

关于javascript - 如何使 IE9 中的 Array.toString() 兼容现代浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19629776/

相关文章:

javascript - 如何将 NVD3 折线图置于所有其他区域/条形图之上?

javascript - 在javascript中按字母顺序对数组及其对象键进行排序

java - 如何合并和打印两个排序的整数数组

javascript - 冰脸3.3 : ace:dialog not working with IE8

javascript - 如何在字符串中使用双引号而不用 Internet Explorer 修改它们?

windows - 使用 Protractor 如何设置 Internet Explorer 配置?

javascript - 在下面添加行时更改单元格值

javascript - 在 Ionic 2 中检测 Android 软导航栏高度

javascript - 将变量从自定义服务器传递到 NextJS 中的组件

Java:如何拥有子类类型的数组?