如何从段落标记中获取数值?

时间:2013-02-19 09:26:29

标签: jquery

我有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);

但它不起作用。感谢..

3 个答案:

答案 0 :(得分: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];

答案 1 :(得分:1)

试试这个

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

答案 2 :(得分: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);
});