2011-01-14 79 views

Trả lời

91
var a = document.getElementById('yourlinkId'); //or grab it by tagname etc 
a.href = "somelink url" 
+0

Thú vị. Tôi không biết bạn có thể trực tiếp truy cập vào các thuộc tính như các lĩnh vực (so sánh với giải pháp của tôi dưới đây, bằng cách sử dụng 'setAttribute'). Có ai biết nếu cách tiếp cận này là tiêu chuẩn? – mgiuca

+0

Cảm ơn mọi người - cả hai cách đều hoạt động. – Pavel

+0

Tôi nghĩ rằng trên một phần tử DOM href là một thuộc tính mà bạn có thể đặt trực tiếp bởi el.href. Thay vào đó, setAttribute (el, attr) được sử dụng để thêm một số thuộc tính tùy chỉnh vào một phần tử DOM cụ thể, vì vậy trong trường hợp này, không cần sử dụng nó để thiết lập một std. attr – stecb

14

Tôi giả sử bạn biết làm thế nào để có được những đối tượng DOM cho các phần tử <a> (sử dụng document.getElementById hoặc một số khác phương pháp).

Để thêm bất kỳ thuộc tính, chỉ cần sử dụng các phương pháp setAttribute trên đối tượng DOM:

a = document.getElementById(...); 
a.setAttribute("href", "somelink url"); 
+0

pal, setattribute khá không chuẩn để sửa đổi các thuộc tính. Để truy cập hoặc sửa đổi các giá trị hiện tại, bạn nên sử dụng các thuộc tính. Ví dụ, sử dụng elt.value thay cho elt.setAttribute ('value', val). https://developer.mozilla.org/en/DOM/element.setAttribute#Notes – naveen

+0

@naveen Nó nói "đáng chú ý nhất trong XUL", có lẽ không phải là cái này. Tôi không chắc chắn các giá trị khác nó đề cập đến ("các thuộc tính nhất định" là rất mơ hồ), nhưng 'setAttribute' rõ ràng là tiêu chuẩn (http://www.w3.org/TR/DOM-Level-2-Core/ core.html # ID-F68F082) và W3C không xác định bất kỳ thuộc tính nào mà nó không hoạt động. Ngược lại, tôi có thể đảm bảo rằng việc sử dụng thuộc tính sẽ thất bại đối với một số tên thuộc tính nhất định. Chẳng hạn như 'tagName', và' setAttribute' - đó là các trường/phương thức của giao diện Element. Tôi không thấy bất cứ nơi nào trong tài liệu W3C đề cập đến các thuộc tính cho các thuộc tính. – mgiuca

+0

@mgiuca: Có vẻ như bạn đã tìm thấy thông số kỹ thuật có liên quan sau khi đăng nhận xét cuối cùng. Tôi không hiểu điểm của bạn về các thuộc tính bị lỗi và sau đó đề cập đến 'tagName'. Bạn đang nói về các thuộc tính tùy chỉnh? –

0

Tôi biết điều này đã được trả lời, nhưng vì bài này đã giúp làm cho tôi để giải pháp của tôi, tôi muốn gửi.

Ban đầu, tôi đã cố gắng

<a href='somelink' class='button-css'>Click Me</a> 

và suýt nữa đã làm việc. Các văn bản đã được một chút off trung tâm và chỉ không thực sự rõ ràng. Sau đó tôi đã thử:

"<a href='SomeLink'><input type='button' class='button-css' value='Button Text' /></a>" 

Nút của tôi trông tuyệt vời và liên kết hoạt động.

+5

Tôi biết đây là một bài cũ nhưng tôi chỉ nhìn thấy nó và nó làm tôi khó chịu, ông rõ ràng là không nói về điều này. – Bbit

0
document.getElementById('link-id').href = "new-href"; 

Tôi biết đây là một bài cũ, nhưng đây là một lớp lót mà có thể phù hợp hơn cho một số người.

0

Trước tiên, hãy thử thay đổi <a>Link</a> thành <span id=test><a>Link</a></span>.

Sau đó, thêm một cái gì đó như thế này trong hàm javascript mà bạn đang gọi điện thoại:

var abc = 'somelink'; 
document.getElementById('test').innerHTML = '<a href="' + abc + '">Link</a>'; 

Bằng cách này liên kết sẽ trông như thế này:

<a href="somelink">Link</a> 
+0

Vui lòng bỏ qua biểu tượng "' "trong mã !! : D –

+0

Xin chào. Chào mừng bạn đến với Stackoverflow. Câu hỏi của OP có vẻ là về cách thêm một 'href' vào một thẻ ** hiện có **' (* Về cơ bản tôi muốn thêm thuộc tính href vào động *). Tuy nhiên, câu trả lời này dường như giải thích cách tạo ** một thẻ 'a' bằng' href'. –

Các vấn đề liên quan