2013-02-19 3 views
0

У меня есть N количество тегов абзаца. Каждый тег абзаца будет содержать некоторые цифры. Я хочу получить эти числа и сохранить их в переменных. Пример:Как получить числовые значения из тега абзаца?

<p id="id_1">1</p> 
<p id="id_2">2</p> 
<p id="id_3">3</p> 
<p id="id_2">4</p> 
and so on... 

Эти цифры выводятся из текстового поля ввода и сохраняются внутри тега абзаца. Я хочу сохранить эти числа в переменной с номерами.

<input type="text" id="numerics" />  //using #numeric.val(); I stored the numbers in paragraph 

И JS является:

var numbers = parseInt($("#id_'+$('#numeric').val()+'").text().trim(), 10); 

Но это не работает. Спасибо ..

ответ

1

Вы неправильно использовали цитаты.

Использование

var number = parseInt($('#id_'+$('#numeric').val()).text().trim(), 10); 

Чтобы сделать массив из всех id_ * абзацы, сделать

var numbers = $('p[id^="id_"]').map(function(){ 
    return parseInt($(this).text().trim(), 10) 
}).get(); 

Результат: [1, 2, 3, 4]

Обратите внимание, что индекс начинается с 0 вместо 1, так что если вы хотите найти номер, используя ваш ввод, вам нужно сделать

var number = numbers[parseInt($('#numeric').val().trim(),10)-1]; 
+0

Это позволяет хранить эти числа в массивах? – Rajesh

+0

@ Rajesh Sure. См. Править. –

1

попробовать это

var numbers = parseInt($("#id_"+$('#numeric').val()).text().trim(), 10); 
0

Это зависит от того, как вы хотите, чтобы сохранить их в массиве или просто суммировать их?

вот пример того и другого.

http://jsfiddle.net/z4HL4/1/

$("document").ready(function(){ 
    var numbers = []; 
    var sum = 0; 

    $("p").each(function(i){ 

     // get the number as int 
     var idNumber = parseInt($(this).attr("id").replace("id_", ""), 10); 

     // save in array 
     numbers[i] = idNumber; 

     // add to our sum 
     sum += idNumber; 
    }); 

    // as array 
    console.log(numbers); 

    // as sum 
    console.log(sum); 
}); 
Смежные вопросы