[jQuery] Xóa những phần tử trùng nhau

Trên trang web hiển thị những thẻ div,span,a…giống nhau, bạn khá bực mình và muốn xóa những thẻ đó ?

Tôi sẽ hướng dẫn thủ thuật xóa các phần tử trùng nhau bằng jQuery mà tôi đọc trên trang http://stackoverflow.com . Ví dụ tôi có đoạn code sau :

<div id="before">
    <a href="#">Vietnam</a>
    <a href="#">Cambodia</a>
    <a href="#">Vietnam</a>
    <a href="#">Laos</a>
    <a href="#">Cambodia</a>
    <a href="#">Cambodia</a>
    <a href="#">Vietnam</a>
    <a href="#">Laos</a>
</div>

Và tôi chỉ muốn kết quả hiển thị (sau khi xóa các thẻ a giống nhau ) là :

<a href="#">Vietnam</a>
<a href="#">Cambodia</a>
<a href="#">Laos</a></div>

Đoạn code tôi sử dụng sẽ như sau

var obj = {};

$('a').each(function(){
  var text = $(this).text();

  if (obj[text]) {
    $(this).remove();
  } else {
    obj[text] = true;
  }
});

Giải thích,

+ Hàm each() sẽ duyệt tất cả các phần tử (tương tự như lệnh for, while…).

+ Biến obj sẽ chứa các phần tử đã được kiểm tra trước đó, nếu phần tử nào đó trùng với phần tử trong biến obj thì nó sẽ xóa, còn lại sẽ thêm vào biến obj.

+ Hàm remove() xóa bao gồm cả phần tử đang truy xuất và phần tử con.

 

Tấn Việt

Tôi lập trang web này để thỏa mãn sở thích viết cái gì đó vui vui khi rãnh rỗi và đồng thời cũng chia sẻ những gì tôi biết hoặc đọc đâu đó trên mạng về Lập trình web. Tôi hi vọng những bài viết này sẽ giúp ích cho các bạn. Thân ái!

You may also like...

2 Responses

  1. saoviet says:

    Bạn làm phim hướng dẫn được không, tôi không làm được

    • Tấn Việt says:

      Chào bạn,

      Bạn có thể nói rõ hơn về vấn đề bạn đang gặp được không ? Bạn không làm được chỗ nào ?

    • Xin chào ! mình nghĩ có thể bạn không đặt hàm $(document).ready(function() thôi ! bạn thử xem nhé ! Chứ cái này làm clip thì tội Admin quá ^^

      $(document).ready(function(){
      //Code của bạn ở đây;
      });

Leave a Reply

Your email address will not be published. Required fields are marked *