Hướng dẫn javascript get href value onclick - javascript lấy giá trị href onclick

Tôi đang cố gắng trả về thuộc tính href của liên kết bằng JavaScript khi người dùng nhấp vào nó. Tôi muốn URL liên kết được liên kết để hiển thị trong một cảnh báo thay vì tải trang.

Tôi có mã sau cho đến nay:

function doalert(){
    alert(document.getElementById("link").getAttribute("href"));
    return false;
}

Với đánh dấu sau:

Link

Vì một số lý do, không có cảnh báo nào được hiển thị và thay vào đó tải trang. Có ai biết tại sao điều này?no alert is ever displayed and the page loads instead. Does anyone know why this is?

Sử dụng jQuery không phải là một lựa chọn trong trường hợp này.

Khi người dùng nhấp vào liên kết trong tài liệu HTML của bạn, bạn muốn truy xuất URL đích, có nghĩa là giá trị của thuộc tính href, với JavaScript.

cách tốt nhất để thực hiện điều này là gì?

Để nhận giá trị của thuộc tính href của liên kết đã nhấp, hãy tạo trình nghe sự kiện bằng AddEventListener() và lấy giá trị của thuộc tính HREF bằng

Link
0.

Hướng dẫn này sẽ chỉ cho bạn chính xác cách thực hiện điều này trong hai bước.

Đầu tiên, bạn sẽ học cách tạo trình nghe sự kiện cho tất cả các liên kết hoặc cho các liên kết cụ thể. Thứ hai, bạn sẽ tìm hiểu cách truy xuất giá trị của thuộc tính href của liên kết khi người dùng nhấp vào nó.

Tạo người nghe sự kiện

Phương thức

Link
2 của API web
Link
3 trong JavaScript cho phép bạn tạo Trình nghe sự kiện khi người dùng nhấp vào phần tử DOM trong tài liệu HTML của bạn.

Phương pháp này cho phép bạn khai báo một chức năng được gọi mỗi khi sự kiện được bắn. Từ sự kiện, bạn có thể đọc các thuộc tính của phần tử DOM mà nó được đính kèm, cho phép bạn phân tích giá trị của thuộc tính href và lưu trữ nó trong một biến.

Cú pháp cho phương thức addEventListener () như sau:

// Event listener syntax
EventTarget.AddEventListener(type, listener);

Cả đối số

Link
5 và
Link
6 đều là bắt buộc.

Link
7 là một chuỗi chỉ định loại sự kiện mà bạn muốn người nghe sự kiện nghe.

Người nghe có thể là một đối tượng trong phạm vi của API web

Link
8 hoặc một hàm được gọi mỗi khi sự kiện được bắn.

Trong trường hợp này, chúng ta cần tạo một trình nghe sự kiện cho các nhấp chuột vào các yếu tố liên kết, nghĩa là các yếu tố

Link
9.

Một trong những cách tốt nhất để làm điều này là sử dụng phương pháp

// Event listener syntax
EventTarget.AddEventListener(type, listener);
0. Phương pháp này cho phép bạn tạo một vòng lặp nhắm mục tiêu tất cả các phiên bản của các thành phần DOM cụ thể bằng các bộ chọn CSS.

Vì vậy, bạn có thể thực hiện một lựa chọn đơn giản cho tất cả các liên kết trên trang HTML của bạn hoặc một lựa chọn liên kết bị thu hẹp với một ID cụ thể, lớp hoặc khác.

Tại đây, cách thức một trình nghe sự kiện cho tất cả các nhấp chuột liên kết trông giống như:an event listener for all link clicks looks like:

// Create event listener for all link clicks
document.querySelectorAll('a').forEach(link => {
  link.addEventListener('click', (e) => {
    console.log('A link was clicked');
  });
});

Nếu bạn cần thu hẹp phạm vi nghe sự kiện của mình vào các lần nhấp vào các liên kết cụ thể, ví dụ: các liên kết với

// Event listener syntax
EventTarget.AddEventListener(type, listener);
1 hoặc
// Event listener syntax
EventTarget.AddEventListener(type, listener);
2 đã cho, tất cả những gì bạn cần làm là sửa đổi bộ chọn CSS của bạn:

// Event listener only for 
document.querySelectorAll('a.nav-item').forEach(link => {
  link.addEventListener('click', (e) => {
    console.log('A link was clicked');
  });
});

// Event listener only for 
document.querySelectorAll('a#nav-item-01').forEach(link => {
  link.addEventListener('click', (e) => {
    console.log('A link was clicked');
  });
});

Tùy thuộc vào các yêu cầu thực hiện của bạn, bộ chọn CSS có thể đơn giản như nhắm mục tiêu các phần tử

Link
9 hoặc phức tạp như nhắm mục tiêu phần tử N-th
Link
9 trong phần tử cha hoặc một nhóm các phần tử.

Làm chủ bộ chọn CSS có thể đưa các kỹ năng lựa chọn truy vấn của bạn lên cấp độ tiếp theo. Nếu bạn là một nhà phát triển frontend, kỹ năng này sẽ cung cấp cho bạn một ưu thế trong công việc hàng ngày của bạn.

Liên quan: Người nghe sự kiện cho nhiều yếu tố trong JavaScript Event Listeners for Multiple Elements in JavaScript

Lấy thuộc tính HREF

Bây giờ bạn đã biết cách tạo người nghe sự kiện nghe các nhấp chuột trên các liên kết, cho dù tất cả các liên kết hoặc liên kết cụ thể, hãy để xem cách lấy lại giá trị của HREF

// Event listener syntax
EventTarget.AddEventListener(type, listener);
5 từ chúng.

Điều này có thể được thực hiện bằng cách chuyển tham số & nbsp;

Sau đó, bạn có thể sử dụng API Web & nbsp;

// Create event listener for all link clicks
document.querySelectorAll('a').forEach(link => {
  link.addEventListener('click', (e) => {
    // Retrieve href and store in targetUrl variable
    let targetUrl = e.target.href;
    // Output value of targetUrl to console
    console.log('A link with target URL ' + targetUrl + 'was clicked');
  });
});

Nếu bạn đã mở bảng điều khiển trình duyệt của bạn ngay bây giờ, hãy sao chép/dán và chạy mã này, sau đó nhấp vào một liên kết hoặc hai, bạn sẽ quan sát các kết quả sau:

Hướng dẫn javascript get href value onclick - javascript lấy giá trị href onclick

Tóm lại là

Tôi hy vọng bạn tìm thấy hướng dẫn này hữu ích.

Gần đây tôi đã phải tự mình giải quyết thử thách này khi tôi thực hiện A & NBSP; Lớp dữ liệu & NBSP; cho mục đích phân tích trên một trong các trang web của tôi. Tôi đã mất một vài lần thử (và một vài giờ) để đi đến giải pháp tốt nhất, và tôi tin rằng đây là nó.

Nếu bạn có bất kỳ câu hỏi nào, hoặc bạn muốn chia sẻ các cách khác để đạt được điều này với phần còn lại của độc giả bài đăng này, hãy chắc chắn để lại câu trả lời bên dưới.

Làm thế nào để có được giá trị của một href trên click?

Để có được giá trị của thuộc tính HREF của liên kết đã nhấp, hãy tạo trình nghe sự kiện bằng addEventListener () và truy xuất giá trị của thuộc tính hREF bằng phần tử.target ().create an event listener using AddEventListener() and retrieve the value of the href attribute using Element. target() .

Tôi có nên sử dụng JavaScript Void 0 không?

Khi nào sử dụng JavaScript void (0) Sử dụng JavaScript: void (0) Nếu, khi nhấp vào liên kết, bạn không muốn trình duyệt tải một trang mới hoặc làm mới cùng một trang (tùy thuộc vào URL được chỉ định).Thay vào đó, nó sẽ chỉ thực hiện JavaScript gắn liền với liên kết đó.when a link is clicked, you don't want the browser to load a new page or refresh the same page (depending on the URL specified). Instead it will just perform the JavaScript attached to that link.

Làm thế nào để bạn tạo một thẻ neo không có gì?

Để tạo một thẻ neo, không có gì, hãy sử dụng JavaScript: void (0).use “javascript: void(0)”.