var name = $(".column_nr_matching:last").attr("name");
// это дает мне col_nr359
а тут добавляю плюс 1
var added_one = name + (+1);
Когда я смотрю с консоли, я получаю следующее:
col_nr3591
Мне нужно, чтобы это было
col_nr360
Что происходит, когда вы пытаетесь добавить число к строке? Он соединяется. Вам нужно найти решение, чтобы сначала получить число из вашей строки, добавить к этому числу, а затем вернуться к строке.
Что ж, col_nr359 - это строка, а не число, поэтому добавление к нему 1 заставляет Javascript преобразовывать этот 1 в символ и добавлять его как строку. Даже если бы у вас был '123' + 2, вы бы получили '1232', поскольку '123' - это строка. Вам нужно будет разделить число, добавить 1 как число, добавленное к числу, и восстановить строку.
Я хочу добавить +1, но он не добавляет, а просто ставит цифру 1 в конец вместо увеличения
Да, это правильно. И двое из нас объяснили вам причину, по которой это происходит. Вы понимаете причину? Как я уже сказал, вам нужно провести некоторое исследование утилит обработки строк javascript, выделить число из строки как отдельное число (не подстроку), добавить к нему 1 как число, а затем восстановить строку.
Я думаю, вам следует предоставить больше кода



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы смешиваете типы данных. col_nrxxx - это строка, которая всегда будет единицей. Вам нужно вырезать 359, затем проанализировать его до int, затем добавить +1, а затем объединить его обратно в строку.
Хороший комментарий; плохой ответ. Правильный ответ объяснил бы, как делать то, что вы описали.
Поскольку 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>Этот ответ тоже может быть полезен: stackoverflow.com/a/17106701/4802649
col_nr359 - это String, даже JavaScript не может интерпретировать его как number, так как впереди есть символы.
Что вам нужно сделать, так это разделить строку так, чтобы у вас были col_nr и 359, затем добавить 1 к 359, а затем снова объединить.
Как уже упоминалось, name - это строка, а не число. Вам нужно просто получить числовую часть, чтобы вы могли добавить к ней единицу. Один из возможных способов сделать это - заменить строку регулярного выражения, где вы используете группу захвата, чтобы получить числовую часть и заменить ее этим числом плюс один. Пример:
const name = "col_nr359";
const added_one = name.replace(/(\d*)$/, m => String(+m + 1))
console.info(added_one)
Вопросы не ясны