string.split()返回额外的项目(函数)

Cam*_*ell 1 javascript jquery

这段代码:

allUID = $("#allservices_"+categoryUID).attr("value").split(',');
Run Code Online (Sandbox Code Playgroud)

应用于元素

value="
1298698f-62a0-41da-9303-563e317f97a1,
75b79dc8-873f-4e80-9174-64e3bf0b7e7b,
7add7028-dd32-40cc-baa3-a8dbdfe36dc0,
0b136659-19e5-4b58-9b58-23a5ba7383fe,
73a6a712-4aae-4101-ad36-77feea188aad,
8f5d7f01-b854-4a6f-9cf6-cc6554835c8a,
f0c1d8dc-a96d-402a-b41b-74f753a4c313,
770d1178-8c17-4e9d-8a31-bff8a15097b3
"
Run Code Online (Sandbox Code Playgroud)

返回:

0   "1298698f-62a0-41da-9303-563e317f97a1"
1   "75b79dc8-873f-4e80-9174-64e3bf0b7e7b"
2   "7add7028-dd32-40cc-baa3-a8dbdfe36dc0"
3   "0b136659-19e5-4b58-9b58-23a5ba7383fe"
4   "73a6a712-4aae-4101-ad36-77feea188aad"
5   "8f5d7f01-b854-4a6f-9cf6-cc6554835c8a"
6   "f0c1d8dc-a96d-402a-b41b-74f753a4c313"
7   "770d1178-8c17-4e9d-8a31-bff8a15097b3"
contains    function()
removeDoubles   function()
reversed    function()
Run Code Online (Sandbox Code Playgroud)

这些额外功能来自哪里?

ale*_*lex 5

它没有发生在我身上.

最有可能的是,您使用a迭代生成的数组for ( in ).不要那样做; 使用普通for循环或jQuery each().

代码中的其他位置可能会扩充Array原型,并且不会将属性指定为不可枚举(仅适用于最新的JavaScript版本defineProperty()和朋友).

jsFiddle(不要这样做).

你应该使用val(),而不是attr('value').