Почему значение data-value="2.0"
относится к строкам, а значение data-value="2.5"
относится к числу? Я могу справиться с этим штрафом в рамках моей функции. Я просто пытаюсь понять немного больше о том, как Javascript обрабатывает номера и строки. Этот вид заставил меня остерегаться.HTML5 data- * type type casting strings and numbers
<a data-value="2.0">2.0</a>
<a data-value="2.5">2.5</a>
$("a").click(function() {
alert(typeof $(this).data("value"));
});
Я не знаю, почему это происходит, но вы можете видеть, что поплавки заканчивающееся на '0' являются всегда притворялись струнами. Может быть, потому, что последний '0' не имеет значения и интерпретируется как текст. Например: '2.5' - это номер, а' 2.50' - строка. – TheFrozenOne
Метод '.data' jQuery будет пытаться преобразовать все, что находится в атрибуте' data- * ', - если вы хотите, чтобы оно было как строковое значение строки, используйте' .attr («data - *») ' – tymeJV
@tymeJV спасибо за Берегись! – Matt