#javascript #html
Хочу отнять подстроку у ID. Вот этот код выводит NaN:
function someFunction(x) {
var str = x.id;
str = str - "Link";
alert(str);
}
Должно остаться только my
Что я делаю не так? Есть ли решения лучше?
Ответы
Ответ 1
Получить строку путём удаления из ID первого вхождения строки "Link" можно так:
function someFunction(x) {
var str = x.id.replace("Link", "");
console.log(str);
}
Должно остаться только my
Тот же вариант с addEventListener вместо onclick:
document.addEventListener("DOMContentLoaded", function() {
document.getElementById("myLink").addEventListener("click", function(event) {
var str = event.target.id.replace("Link", "");
console.log(str);
});
});
Должно остаться только my
Для удаления всех вхождений 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);
});
});
Ответ 2
Вот как вариант, но лучше так не делать вариант ниже с replace будет лучше
function someFunction(x) {
var str = x.id;
str = str.substr(0,2);
alert(str);
}
Должно остаться только my
Вариант по лучше. без учета регистра.
function someFunction(x) {
var str = x.id;
str = str.replace(/Link/i, '');
alert(str);
}
Должно остаться только my
И наконец последний вариант с учетом регистра.
function someFunction(x) {
var str = x.id;
str = str.replace('Link', '');
alert(str);
}
Должно остаться только my
Комментариев нет:
Отправить комментарий