Jak zmienić href hiperłącza za pomocą jQuery?
javascript
jquery
hyperlink
Brian Boatright
źródło
źródło
Odpowiedzi:
Za pomocą
zmodyfikuje href wszystkich hiperłączy, aby wskazywały na Google. Prawdopodobnie potrzebujesz nieco bardziej wyrafinowanego selektora. Na przykład, jeśli masz połączenie tagów źródła linku (hiperłącza) i linku docelowego (aka „anchor”):
... Więc prawdopodobnie nie chcesz przypadkowo dodać
href
do nich atrybutów. Dla bezpieczeństwa możemy określić, że nasz selektor będzie pasował tylko do<a>
tagów z istniejącymhref
atrybutem:Oczywiście prawdopodobnie będziesz mieć na myśli coś ciekawszego. Jeśli chcesz dopasować kotwicę do określonego istniejącego
href
, możesz użyć czegoś takiego:Znajdziesz tu linki, w których
href
dokładnie pasuje do ciąguhttp://www.google.com/
. Bardziej zaangażowanym zadaniem może być dopasowanie, a następnie zaktualizowanie tylko częścihref
:Pierwsza część wybiera jedynie linki gdzie href zaczyna się
http://stackoverflow.com
. Następnie definiowana jest funkcja, która używa prostego wyrażenia regularnego do zastąpienia tej części adresu URL nową. Zwróć uwagę na elastyczność, jaką to daje - w tym miejscu można dokonać dowolnej modyfikacji łącza.źródło
each
- możliwe byłyby następujące:$(selector).attr('href', function() { return this.replace(/.../, '...'); });
href
:...return this.href.replace(/.../, '...'); });
Z jQuery 1.6 i nowszym powinieneś używać:
Różnica między
prop
iattr
polega na tym, żeattr
pobiera atrybut HTML, podczas gdyprop
pobiera właściwość DOM.Możesz znaleźć więcej szczegółów w tym poście: .prop () vs .attr ()
źródło
prop
w ciąguattr
będą mile widziane, dla osób przybywających do kwestii i znalezienieattr
najwyraźniej działa perfekcyjnie w nowszych wersjach jQuery ...prop
jest szybsze niżattr
dlatego, że aktualizuje dom zamiast modyfikować HTML. jsfiddle.net/je4G5Użyj
attr
metody przy wyszukiwaniu. Możesz zmienić dowolny atrybut z nową wartością.źródło
W zależności od tego, czy chcesz zmienić wszystkie identyczne linki do czegoś innego, czy też chcesz kontrolować tylko te w danej sekcji strony lub każdy z osobna, możesz zrobić jeden z nich.
Zmień wszystkie linki na Google, tak aby wskazywały na Mapy Google:
Aby zmienić linki w danej sekcji, dodaj klasę div kontenera do selektora. Ten przykład zmieni link Google w treści, ale nie w stopce:
Aby zmienić poszczególne łącza niezależnie od tego, gdzie znajdują się w dokumencie, dodaj identyfikator do łącza, a następnie dodaj ten identyfikator do selektora. Ten przykład zmieni drugi link Google w treści, ale nie pierwszy ani ten w stopce:
źródło
Mimo że OP wyraźnie poprosił o odpowiedź jQuery, w dzisiejszych czasach nie musisz używać jQuery.
Kilka metod bez jQuery:
Jeśli chcesz zmienić
href
wartość wszystkich<a>
elementów, zaznacz je wszystkie, a następnie iteruj przez listę węzłów : (przykład)Jeśli chcesz zmienić
href
wartość wszystkich<a>
elementów, które faktycznie mająhref
atrybut, wybierz je, dodając[href]
selektor atrybutów (a[href]
): (przykład)Jeśli chcesz na przykład zmienić
href
wartość<a>
elementów zawierających określoną wartośćgoogle.com
, użyj selektora atrybutówa[href*="google.com"]
: (przykład)Podobnie można także użyć innych selektorów atrybutów . Na przykład:
a[href$=".png"]
może być użyty do wybrania<a>
elementów, którychhref
wartość kończy się na.png
.a[href^="https://"]
może być użyty do wybrania<a>
elementów zhref
wartościami z prefiksemhttps://
.Jeśli chcesz zmienić
href
wartość<a>
elementów spełniających wiele warunków: (przykład).. w większości przypadków nie ma potrzeby wyrażenia regularnego .
źródło
Ten fragment kodu wywołuje się po kliknięciu łącza klasy „menu_link” i pokazuje tekst i adres URL linku. Zwracana wartość false zapobiega podążaniu za linkiem.
źródło
Najprostszym sposobem na to jest:
Funkcja Attr (od wersji jQuery 1.0)
lub
Funkcja prop (od wersji jQuery 1.6)
Zaletą powyższego sposobu jest to, że jeśli selektor wybierze jedną kotwicę, zaktualizuje tylko tę kotwicę, a jeśli selektor zwróci grupę kotwicy, zaktualizuje określoną grupę tylko za pomocą jednej instrukcji.
Istnieje wiele sposobów na określenie dokładnej kotwicy lub grupy kotwic:
Całkiem proste:
$("a")
$("a:eq(0)")
active
):$("a.active")
profileLink
ID):$("a#proileLink")
$("a:first")
Bardziej przydatne:
$("[href]")
$("a[href='www.stackoverflow.com']")
$("a[href!='www.stackoverflow.com']")
$("a[href*='www.stackoverflow.com']")
$("a[href^='www.stackoverflow.com']")
$("a[href$='www.stackoverflow.com']")
Teraz, jeśli chcesz zmienić określone adresy URL, możesz to zrobić jako:
Na przykład, jeśli chcesz dodać witrynę proxy dla wszystkich adresów URL prowadzących do google.com, możesz zaimplementować ją w następujący sposób:
źródło
Przestań używać jQuery tylko ze względu na to! To jest tak proste tylko z JavaScript.
https://jsfiddle.net/bo77f8mg/1/
źródło
źródło
Zmień HREF obrazu logo motywu Wordpress Avada
Jeśli zainstalujesz wtyczkę ShortCode Exec PHP, możesz utworzyć ten krótki kod, który nazwałem myjavascript
Możesz teraz przejść do Wygląd / Widżety i wybrać jeden z obszarów widgetów stopki i użyć widżetu tekstowego, aby dodać następujący kod
Selektor może się zmieniać w zależności od tego, jakiego obrazu używasz i czy jest gotowy na siatkówkę, ale zawsze możesz to rozgryźć za pomocą narzędzi programistycznych.
źródło
href
w atrybucie, abyś mógł go zmienić za pomocą czystego JavaScript, ale jeśli masz już wstrzyknięty jQuery na swojej stronie, nie martw się, pokażę to w obie strony:Wyobraź sobie, że masz to
href
poniżej:I chcesz to zmienić link ...
Używając czystego JavaScript bez żadnej biblioteki możesz:
Ale także w jQuery możesz:
lub
W tym przypadku, jeśli masz już wstrzyknięty jQuery, prawdopodobnie jQuery jeden wygląda na krótszy i więcej w różnych przeglądarkach ... ale poza tym idę z tym
JS
...źródło