2010-11-18 28 views
6

Tôi thường sử dụng jquery, nhưng cần phải sử dụng khung Prototype cho dự án này. Tôi có một danh sách hình ảnh (jpg, png và gif), một số trong số đó có liên kết với thẻ <a>. Tôi chỉ cần thêm thuộc tính rel cho các thẻ <a> là các liên kết trực tiếp đến jpg, gif và png. Href không có kiểu tương tự nào khác ngoài kết thúc bằng .jpg, .png, hoặc .gif. Tôi có thể thêm liên kết vào một liên kết duy nhất với href cụ thể, nhưng tôi không thể tìm ra cách chọn tất cả các liên kết như vậy. Một ví dụ về các liên kết mà cần phải được thao tác:Làm cách nào tôi có thể chọn tất cả các liên kết đến hình ảnh trong Prototype

<a href="images/01.jpg"><img src="images/01.jpg" width="500" /></a> 
<br> 
<a href="http://www.example.com/"><img src="images/02.jpg" width="500"></a> 
<br> 
<a href="images/03.png"><img src="images/03.png" width="500" /></a> 
<br> 
<img src="images/04.jpg" width="500"> 
<br> 

Và kết quả mong muốn:

<a href="images/01.jpg" rel="whatever"><img src="images/01.jpg" width="500" /></a> 
<br> 
<a href="http://www.example.com/"><img src="images/02.jpg" width="500"></a> 
<br> 
<a href="images/03.png" rel="whatever"><img src="images/03.png" width="500" /></a> 
<br> 
<img src="images/04.jpg" width="500"> 
<br> 

Tôi tưởng tượng rằng mã cuối cùng sẽ giống như thế:

<script type="text/javascript"> 
Event.observe(window, 'load', function() { 
    $$('a[href="*.jpg","*.png"]').each(function(link){ 

      link.writeAttribute('rel','whatever'); 

    }); 
}); 
</script> 

Nhưng tôi không thể lấy ký tự đại diện (*) để hoạt động bình thường. Làm cách nào để sử dụng ký tự đại diện trong nguyên mẫu?

Trả lời

9

Nguyên mẫu không hỗ trợ sử dụng ký tự đại diện như vậy, nhưng nó cho phép khớp với phần cuối của giá trị bằng cách sử dụng $=attribute selector.

$$('a[href$=.jpg], a[href$=.png], a[href$=.gif]').each(function(link){ 
+0

Hoàn hảo. Hoạt động chính xác như tôi muốn. Tôi đã rối tung với ~ =, nhưng bây giờ tôi thấy điều đó là sai lầm. – msb

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