Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

Как отнять подстроку у ID элемента

#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


  • Комментариев нет:

    Отправить комментарий