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...

这些数字从输入文本字段中获取并存储在段落标记中。我想将这些数字存储在一个名为 numbers 的变量中。

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

js是:

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

但它不起作用。谢谢..

4

3 回答 3

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];
于 2013-02-19T09:28:10.933 回答
1

尝试这个

var numbers = parseInt($("#id_"+$('#numeric').val()).text().trim(), 10);
于 2013-02-19T09:29:44.223 回答
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);
});
于 2013-02-19T09:36:10.690 回答