我有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);
但它不起作用。感谢..
答案 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)
这取决于您希望如何将它们存储在一个数组中,还是只是汇总它们?
这是两者的一个例子。
$("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);
});