Заменить часть ссылки частью текущего URL

Я новичок в этом вопросе, и мне трудно сделать что-то, что, по моему мнению, должно быть простым.

У меня много страниц, размещенных на https://www.something.com/path/NUMBER/path/path

Внутри этих страниц у меня есть кнопка, которая ссылается на https://www.example.com/path/REPLACE/path

Я хочу заменить ЗАМЕНИТЬ в своей ссылке на НОМЕР в адресной строке.

Это мой код:

<!doctype html>
<html>
<head>
<meta charset = "utf-8">
<script src = "https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>

<body>

  <script>
      $(document).ready(function(){
          var newURL = window.location.protocol + "://" + window.location.host + "/" + window.location.pathname;
          pathArray = window.location.pathname.split( '/' );
          var part_2 = pathArray[2];
          var mylink = "https://www.example.com/path/" + part_2 + "/path/page.html";
      });    
  </script>

<p><a href = "#" id = "mylink">BUTTON</a></p>

</body>
</html>

Большое спасибо за Вашу помощь!

как насчет $("#mylink").attr("href", mylink);

Ganov13 20.07.2018 14:38

вы хотите изменить URL-адрес во время загрузки или хотите изменить ссылку в файлах напрямую?

CrazyProgrammer 20.07.2018 14:38

Я хочу сделать это во время загрузки, так как страницы могут изменить свой путь

Osheye Rebolledo 20.07.2018 15:01

Я уже поделился этим в своем ответе stackoverflow.com/a/51442820/1262248

Aman Chhabra 20.07.2018 15:04
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
618
2

Ответы 2

Если вы хотите изменить с помощью Javascript, вы можете сделать следующее:

var url = "https://www.something.com/path/NUMBER/path/path";
var oldUrl = "https://www.example.com/path/REPLACE/path/path";
var regex = /https://www\.something\.com/path/(\w*?)/.*/g;
var match = regex.exec(url);
oldUrl = oldUrl.replace("/REPLACE/", "/"+match[1]+"/");
console.info(oldUrl);

-- РЕДАКТИРОВАТЬ --

Другой пример замены с использованием URL-адреса браузера и замены второго пути без учета оставшегося URL-адреса или путей.

$(document).ready(function() {
  var url = window.location.href;
  // As the script executed in iframe, assigning with hardcode value
  url = "https://stackoverflow.com/questions/51442637/change-part-of-link-with-part-of-current-url#";
  var oldUrl = "https://www.example.com/path/REPLACE/path/path";
  var regex = /https://\w*?\.?\w*?\.\w*?/\w*?/(\w*?)/.*/g;
  var match = regex.exec(url);
  oldUrl = oldUrl.replace("/REPLACE/", "/" + match[1] + "/");
  document.getElementById("mylink").href = oldUrl;
});
<!doctype html>
<html>

<head>
  <meta charset = "utf-8">
  <script src = "https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>

<body>


  <p><a href = "https://stackoverflow.com/questions/51442637/change-part-of-link-with-part-of-current-url#" id = "mylink">BUTTON</a></p>

</body>

</html>

Спасибо! Но что, если я хочу получить oldUrl из window.location.href; и используйте только второй путь, не обращая внимания на остальную часть URL.

Osheye Rebolledo 20.07.2018 15:19

Поделился еще одним примером. Надеюсь, это поможет тебе

Aman Chhabra 20.07.2018 15:24

Как это ?? <body> <script type = "text / javascript"> var url = window.location.href; var oldUrl = "example.com/courses/REPLACE/pages/page.html"; var regex = /https://\w*?\.?\w*?\.\w*?/\w*?/(\w*?)/.*/g; var match = regex.exec (URL); oldUrl = oldUrl.replace ("/ REPLACE /", "/" + match [1] + "/"); console.info (oldUrl); </script> <p> <a href = "" id = "oldUrl"> КНОПКА </a> </p> </body>

Osheye Rebolledo 20.07.2018 15:46

да, вот так, вы также можете нажать на фрагмент кода запуска, чтобы увидеть результат

Aman Chhabra 20.07.2018 15:49

Вы обновляете обновленный URL-адрес в кнопке с помощью javascript / jquery?

Aman Chhabra 21.07.2018 06:57

Я обновил свой ответ, чтобы показать, как вы также можете обновить тег привязки в предоставленном вами html

Aman Chhabra 21.07.2018 07:05

попробуй это. Url1: - https://www.something.com/path/NUMBER/path/path; Url2: - https://www.example.com/path/REPLACE/path;

url2 = url2.split('/').map(a => {
    if (a == 'REPLACE') 
        return 'NUMBER'; 
    else 
        return a;
}).join('/');

Другие вопросы по теме