2012-04-11 39 views
9

Tôi đang rối tung xung quanh với jQuery và gặp vấn đề mà tôi không thể giải quyết được. Tôi biết nó có thể với jQuery, nhưng không thể tìm thấy một ví dụ thích hợp để làm việc tắt. Tôi có một trang với một vài liên kết thông thường với thuộc tính/giá trị target="_blank" được thêm vào đó.Xóa tất cả mục tiêu = "_ blank" khỏi liên kết

Cách tiếp cận tốt nhất với jQuery/JavaScript để xóa giá trị đó khỏi mọi liên kết trên trang là gì?

Trả lời

27

này nên làm điều đó với jQuery ...

$('a[target="_blank"]').removeAttr('target'); 

Với một trình duyệt hiện đại ...

Array.from(document.querySelectorAll('a[target="_blank"]')) 
    .forEach(link => link.removeAttribute('target')); 

Với trình duyệt cũ hơn như IES trước ...

var links = document.links, i, length; 

for (i = 0, length = links.length; i < length; i++) { 
    links[i].target == '_blank' && links[i].removeAttribute('target'); 
} 
+0

+1: Tôi thích so sánh với jQuery. – iambriansreed

+0

Tại sao phải bận tâm với '.slice()'? Vì bạn đang sử dụng '.forEach()', chỉ cần thiết lập ngữ cảnh của phương thức đó. '[] .forEach.call (document.querySelectorAll (...' –

+1

@amnotiam Tôi đã không xem xét điều đó, nhưng nó thực sự là một cách tốt hơn để đạt được nó. Cảm ơn bạn đã bình luận của bạn, tôi đã cập nhật câu trả lời của tôi – alex

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