var name = $(".column_nr_matching:last").attr("name");
//这给了我col_nr359
在这里我加上加1
var added_one = name + (+1);
当我看到控制台时,它给了我这个:
col_nr3591
我需要它
col_nr360
答案 0 :(得分:4)
由于col_nr359
是一个字符串,并且使用+
,因此您将1
连接到该字符串。你需要做这样的事情:
document.getElementById('increment').onclick = function (){
//get the innertext from the span
var text = document.getElementById('colid').innerText;
//replace the 'col_nr' text with empty string to get the number
var nr = text.replace('col_nr','');
//parses the number to int and sums 1, then concatenate back
var new_id = 'col_nr' + (parseInt(nr) + 1);
//set the new text to the span
document.getElementById('colid').innerText = new_id;
}
<span id="colid">col_nr359</span>
<br>
<button id="increment" > Increment </button>
答案 1 :(得分:1)
如上所述,name
是一个字符串,而不是一个数字。您需要获取数字部分,以便可以添加一个。一种可能的方法是使用正则表达式字符串替换,您可以使用捕获组来获取数字部分,并将其替换为该数字加1。例如:
const name = "col_nr359";
const added_one = name.replace(/(\d*)$/, m => String(+m + 1))
console.log(added_one)
答案 2 :(得分:0)
col_nr359
是String
,即使JavaScript也无法将其解释为number
,因为前面有字符。
你需要做的是拆分字符串,使你有col_nr和359,然后在359中加1,然后重新连接。
答案 3 :(得分:-1)
您正在混合数据类型。 col_nrxxx是一个字符串,始终为1。您必须删除359,然后将其解析为int,然后添加+1,然后将其连接回字符串。