2010-02-12 39 views
6

Tôi đang cố sửa đổi một liên kết bằng jQuery. Các liên kết được tạo động và tôi không thể kiểm soát HREF hiện tại khi chúng được gọi từ trang web của bên thứ ba.jQuery: Thêm văn bản vào một HREF hiện tại

Sử dụng jQuery, làm thế nào tôi có thể thay đổi một liên kết từ này:

example.com/?one=1&two=1 

này:

example.com/?one=1&two=1&thisisadded=true 

nên về cơ bản thêm &thisisadded=true đến cuối của liên kết?

Các liên kết cần thay đổi nằm trong div riêng của chúng với lớp là my-link.

Trả lời

12
$('a.my-link').each(function() { 
    var href = $(this).attr('href'); 
    $(this).attr('href', href + '&thisisadded=true'); 
}); 

Thay thế bộ chọn bằng bộ chọn jQuery sẽ khớp với liên kết thích hợp trên trang web của bạn nếu tôi không đủ tốt.

+0

Cảm ơn bạn đã trả lời nhanh! Điều này làm việc cho tôi và thêm chính xác văn bản "& thisisadded = true". Có thể xóa các tham số ("& preview = 1 & TB_iframe = true") ra khỏi liên kết không? Tôi đang mở các liên kết trong một tab mới và tôi không muốn/cần chúng ở đó. Rất cám ơn, James – James

+0

Tôi nghĩ bạn nên chấp nhận điều này làm câu trả lời đúng. ;) – catandmouse

2
var href = $(this).attr('href'); 
$(this).attr('href', href + '&thisisadded=true') 

Rõ ràng làm điều này trong một bối cảnh nơi this là liên kết của bạn

+1

'$ (this)' sẽ hoạt động khi gọi lại khi bạn khớp tất cả các liên kết cần được thay đổi. Nhưng nếu bạn chỉ gọi mã của bạn như thế này, nó sẽ không cung cấp cho bạn kết quả mà bạn mong đợi. – RaYell

+0

Vâng, đó là những gì tôi đã đề cập quá, rằng bạn nên ở trong bối cảnh đó, điều này có thể được sử dụng trên bất kỳ sự kiện trên yếu tố đó, phải không? –

1

Chỉ cần sử dụng chọn của bạn, và một hàm callback để attr. Điều này sẽ thêm phần bổ sung cho phù hợp với mỗi liên kết:

$('a.my_link').attr('href', function(i, a){ return a + "&thisadded=true" }); 

Khi cung cấp một callback với phương pháp attr, tham số đầu tiên là index và tham số thứ hai là bản gốc giá trị attribute. Bất kỳ thứ gì được trả về từ hàm gọi lại sẽ trở thành giá trị mới.

Lưu ý: Tính năng này có sẵn trong jQuery 1.1 và cao hơn. Đừng để phương thức này bị nhầm lẫn với lô các phương thức mới chấp nhận các callbacks được giới thiệu trong jQuery 1.4.

+0

+1 Mẹo tuyệt vời về các giá trị thuộc tính! – Sampson

+0

Điều này đang hoạt động, Nhưng khi bạn nhấp vào các liên kết khác, nó sẽ tiếp tục thêm giá trị vào liên kết. bất kỳ ý tưởng? – Notflip

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