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

当没有要拆分的字符时,Javascript拆分将不起作用,javascript,jquery,Javascript,Jquery,HTML <div id="code1" data-code="123;12"></div> <div id="code2" data-code="231"></div> 由于代码2没有“;”,因此代码将停止一起工作。最后一个警报不起作用,不可拆分代码之后的任何代码也不起作用。即使代码可能没有“;”字符,如何将代码按“;”拆分?使用以下命令: alert($("#code1").attr("data-code").split(";")[0]);

HTML

<div id="code1" data-code="123;12"></div>
<div id="code2" data-code="231"></div>
由于代码2没有“;”,因此代码将停止一起工作。最后一个警报不起作用,不可拆分代码之后的任何代码也不起作用。即使代码可能没有“;”字符,如何将代码按“;”拆分?

使用以下命令:

alert($("#code1").attr("data-code").split(";")[0]);
alert($("#code2").attr("data-code").split(";")[0]);
alert('test');
第二行失败的原因是,当使用
$.data
时,jQuery将值隐式类型转换为
数字。它与
String.prototype.split
的实现无关,因为如果分隔符不存在,它将返回第0个元素为完整字符串的数组

为了解决此问题,请使用
$.attr
而不是
$.data
,以确保jQuery不会在内部将值类型转换为其他类型(如果它看起来像其他类型)

测试。

data()
将值键入数字(如果是数字)

尝试:


有关在

alert(“231.split(;”)
中的html 5属性部分中键入的更多信息,请打印
231
for me。它为您打印了什么,您在哪个浏览器中测试?@PatrickRoberts似乎在chrome中得到了一个很好的结果。@SpencerWieczorek这很有意义。。。jQuery不久前在
data()
a中创建了数字类型转换,如果它是数字
alert($("#code1").attr("data-code").split(";")[0]);
alert($("#code2").attr("data-code").split(";")[0]);
alert('test');
$("#code2").data("code").toString().split(';')