当没有字符要分割时,Javascript拆分将不起作用

Javascript Split wont work when there are no characters to split

本文关键字:Javascript 拆分 不起作用 分割 字符      更新时间:2023-09-26

HTML

<div id="code1" data-code="123;12"></div>
<div id="code2" data-code="231"></div>
Jquery Javascript/

alert($("#code1").data("code").split(";")[0]);
alert($("#code2").data("code").split(";")[0]);
alert('test');

由于code2没有";",因此代码全部停止工作。最后一个警报不起作用,不可分割代码之后的任何代码也不起作用。如何通过";"分割代码,即使它可能没有";"字符?

data()将数值类型转换为number

试题:

$("#code2").data("code").toString().split(';')

关于类型转换的更多信息,请参见data() docs的html 5属性部分

使用如下:

alert($("#code1").attr("data-code").split(";")[0]);
alert($("#code2").attr("data-code").split(";")[0]);
alert('test');

第二行失败的原因是当使用$.data时,该值被jQuery隐式地类型转换为number。它与String.prototype.split的实现无关,因为如果分隔符不存在,则返回第0个元素为完整字符串的数组。

为了解决这个问题,使用$.attr代替$.data,以确保jQuery不会在内部将值类型转换为另一种类型,如果它看起来像另一种类型。