#javascript #html
#javascript #HTML
Вопрос:
Я выбираю элемент span на странице. Для первого щелчка я хочу, чтобы он ссылался на другую страницу. При втором щелчке я хочу, чтобы он вернулся на исходную страницу.
Например, у меня есть ссылка с example.com
, которая является оригиналом. При нажатии на этот элемент «abcd» я хочу, чтобы он ссылался example.com/ar
, а при повторном нажатии я хочу, чтобы он возвращался example.com
.
document.querySelector('span.arb').addEventListener('click', function() {
a.href="example.com";
})
Как мне выполнить это, используя вышеизложенное?
Комментарии:
1. измените в
href
соответствии с тем, что есть в данный момент …. кстати, что естьa
в вашем коде?2. Итак, есть два элемента? Кликабельный
span
и целевойa
? Кроме того, при третьем щелчке он должен вернуться кexample.com/ar
, в основном, переключению, или это все равно будетexample.com
?3.
document.querySelector('span.arb').addEventListener('click', function() { a.href= a.href === "example.com/ar" ? "example.com" : "example.com/ar"; });
4. может быть, вы можете проверить URL с помощью window. найдите и отфильтруйте свой URL, чтобы перейти
Ответ №1:
вы можете получить ссылку и изменить ее после щелчка
document.querySelector('span.arb').addEventListener('click', toogle)
function toogle(){
if( document.querySelector('span.arb').href === "domain.com"){
document.querySelector('span.arb').href = "domain.com/link"
} else if (document.querySelector('span.arb').href === "domain.com/link"){
document.querySelector('span.arb').href = "domain.com"
}
Ответ №2:
Удерживайте ссылку в атрибуте данных и используйте ее для переключения.
document.querySelector("[data-toggleHref]").addEventListener("click", function(){
//Get the link element
var a = document.querySelector("a");
var current = a;
//Log to demontrate only
console.log(this.dataset.togglehref);
//Update the link
a.href = this.dataset.togglehref;
//Set the data attribute for toggle
this.dataset.togglehref = current;
});
<a href="/pagea.html" id="target">Link</a>
<span data-toggleHref="/pageb.html">Click Me</span>
Ответ №3:
попробуйте этот код:
document.querySelector('span.arb').addEventListener('click', function() {
if(a.href == "example.com") {
a.href="example.com/ar";
} else {
a.href="example.com";
}
})
или более короткий ответ с использованием троичного оператора:
document.querySelector('span.arb').addEventListener('click', function() {
a.href = a.href == "example.com" ? "example.com/ar" : "example.com";
})
Ответ №4:
Попробуйте это:
let count = 0;
document.querySelector('span.arb').addEventListener('click', function () {
count ;
document.querySelector('a').href = "http://example.com";
if (count == 1) {
document.querySelector('a').href = "http://example.com/ar";
} else {
document.querySelector('a').href = "http://example.com";
}
});
<a href="http://example.com">Link</a>
<span class="arb">Click Me</span>