У меня есть элемент в javascript, например:
<span>280ms</span>
Я хочу извлечь 280 из элемента span. Как мне это сделать? Содержание внутри элемента span будет любым числом, за которым следует ms.
У меня есть элемент в javascript, например:
<span>280ms</span>
Я хочу извлечь 280 из элемента span. Как мне это сделать? Содержание внутри элемента span будет любым числом, за которым следует ms.
parseInt()
довольно милый.
HTML
<span id="foo">280ms</span>
JS
var text = $('#foo').text();
var number = parseInt(text, 10);
alert(number);
parseInt()
будет обрабатывать любую строку как число и останавливаться, когда она достигает нечислового символа. В этом случае m
в 280ms
. После того, как вы нашли цифры 2
, 8
и 0
, оцениваете эти цифры как базу 10 (этот второй аргумент) и возвращают числовое значение 280
. Обратите внимание, что это фактическое число, а не строка.
Изменить:
@Alex Wayne комментарий.
Сначала сначала отфильтруйте нецифровые символы.
parseInt('ms120'.replace(/[^0-9\.]/g, ''), 10);
Попробуйте следующее:
var num = document.getElementById('spanID').innerText.match(/\d+/)[0];
версия jQuery:
var num = $('span').text().match(/\d+/)[0]; // or $('#spanID') to get to the span
Если вы хотите как числовое значение (а не как строку), используйте parseInt:
var num = parseInt($('span').text().match(/\d+/)[0], 10);
Попробуйте выполнить
var strValue = // get 280m from the span
var intValue = parseInt(strValue.match(/[0-9]+/)[0], 10);
Вы можете использовать функцию parseInt()
var number = parseInt($("span").text())
Использование jquery довольно просто. вероятно, лучше дать span id, хотя
var mytext=replace($('span').text(),"ms","");
отредактирован для удаления ms
Измените диапазон в:
<span id='msSpan'>280ms</span>
Затем вы можете сделать:
alert($('#msSpan').text());
Будет ли оно всегда заканчиваться на ms? Вы можете сделать:
var num = s.substring(0, s.length-2)
где s - строка в пролете. Чтобы получить это значение, вы можете использовать text(), html() или innerHTML на пролете.
в общем случае для чисел no mather negative или positive
<div>
blah blah
<span>285blahblah</span>
</div>
var html= document.getElementsByTagName('div')[0].innerHTML;// or $('div').html() if jquery
var number = parseFloat(html.match(/-*[0-9]+/));