如何选择Prototype中图像的所有链接

msb*_*msb 6 javascript wildcard css-selectors prototypejs

我习惯于jquery,但需要在这个项目中使用Prototype框架.我有一个图像列表(jpg,png和gif),其中一些是与<a>标签的链接.我只需要将一个rel属性添加到那些<a>直接链接到jpg,gif和png的标签上.除了以.jpg,.png或.gif结尾之外,href没有类似的风格.我可以将rel添加到具有特定href的单个链接,但我无法弄清楚如何选择所有这些链接.需要操作的链接示例:

<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>
Run Code Online (Sandbox Code Playgroud)

并且期望的结果:

<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>
Run Code Online (Sandbox Code Playgroud)

我想最终的代码看起来像:

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

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

    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

但我不能让通配符(*)正常工作.如何在原型中使用通配符?

Phi*_*oss 9

Prototype不支持使用这样的通配符,但它允许使用$= 属性选择器匹配值的结尾.

$$('a[href$=.jpg], a[href$=.png], a[href$=.gif]').each(function(link){
Run Code Online (Sandbox Code Playgroud)