Страницы

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

понедельник, 17 декабря 2018 г.

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

Хочу отнять подстроку у ID. Вот этот код выводит NaN
function someFunction(x) { var str = x.id; str = str - "Link"; alert(str); }

  • Должно остаться только my

  • Что я делаю не так? Есть ли решения лучше?


    Ответ

    Получить строку путём удаления из 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); }); });

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

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