HTML
(defn indexof-zero [a]
(->> a
(map-indexed vector)
(filter #(zero? (second %)))
(map first)))
(indexof-zero [-1 -1 -2 -1 -4 0 -6 -1 -5 -2 -10 4 -12 -4 -6 -1 -16 3 -18 2 -10 -8 -22 12 -19
-10 -14 0 -28 12 -30 -1 -18 -14 -22 19 -36 -16 -22 10 -40 12 -42 -4 -12 -20 -46 28 -41 -7])
=> (5 27)
Jquery的/使用Javascript
<div id="code1" data-code="123;12"></div>
<div id="code2" data-code="231"></div>
由于code2没有“;”,因此代码停止工作。最后一个警报不起作用,也不会在不可拆分代码之后的任何代码。如何用“;”分割代码即使它可能没有“;”字符?
答案 0 :(得分:4)
使用以下内容:
alert($("#code1").attr("data-code").split(";")[0]);
alert($("#code2").attr("data-code").split(";")[0]);
alert('test');
第二行失败的原因是因为使用number
时jQuery隐式地将值类型化为$.data
。它与String.prototype.split
的实现无关,因为如果分隔符不存在,则返回一个第0个元素为完整字符串的数组。
为了解决问题,请使用$.attr
而不是$.data
来确保jQuery在内部没有将值类型化为另一种类型,如果它看起来像另一种类型。
在JSFiddle上进行测试。
答案 1 :(得分:4)
data()
会将值编号为数字(如果是数字
尝试:
$("#code2").data("code").toString().split(';')
的html 5属性部分中的类型转换的更多信息