而不是连接,我想添加加1为什么它不工作?

时间:2018-03-12 19:16:01

标签: javascript

var name = $(".column_nr_matching:last").attr("name");
//这给了我col_nr359 在这里我加上加1

var added_one = name + (+1);

当我看到控制台时,它给了我这个:

col_nr3591

我需要它

col_nr360

4 个答案:

答案 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_nr359String,即使JavaScript也无法将其解释为number,因为前面有字符。

你需要做的是拆分字符串,使你有col_nr和359,然后在359中加1,然后重新连接。

答案 3 :(得分:-1)

您正在混合数据类型。 col_nrxxx是一个字符串,始终为1。您必须删除359,然后将其解析为int,然后添加+1,然后将其连接回字符串。