Хочу отнять подстроку у ID. Вот этот код выводит NaN
function someFunction(x) {
var str = x.id;
str = str - "Link";
alert(str);
}
Что я делаю не так? Есть ли решения лучше?
Ответ
Получить строку путём удаления из ID первого вхождения строки "Link" можно так:
function someFunction(x) {
var str = x.id.replace("Link", "");
console.log(str);
}
Тот же вариант с addEventListener вместо onclick
document.addEventListener("DOMContentLoaded", function() { document.getElementById("myLink").addEventListener("click", function(event) { var str = event.target.id.replace("Link", ""); console.log(str); }); });
Для удаления всех вхождений replace можно изменить:
replace(/Link/g, "")
Вообще говоря, в данной ситуации с единственным элементом с ID myLink с тем же успехом можно было просто сделать var str = "my";. Поэтому, для полноты картины, вариант с несколькими ссылками:
document.addEventListener("DOMContentLoaded", function() { var links = document.getElementsByClassName("links"); for (var i = 0; i < links.length; i++) { links[i].addEventListener("click", function(event) { var str = event.target.id.replace("Link", ""); console.log(str); }); } });
И, наконец, то же самое при использовании jQuery:
$(function() { $(".links").on("click", function() { var str = this.id.replace("Link", ""); console.log(str); }); });
Комментариев нет:
Отправить комментарий