Simple Prototype.js代码用于选择具有相同类名的多个元素

ste*_*och 2 prototypejs

我有一个ID为"link"的链接,我使用下面的javascript在modalbox中打开该链接:

#In my template I have: 
<a href="some/path" id="link">link</a>


#Then in my application.js file I have:
document.observe('dom:loaded', function() {
    $('link').observe('click', function(event) {
        event.stop();
        Modalbox.show(this.href,{title: 'some title', width: 500});            
    });
})
Run Code Online (Sandbox Code Playgroud)

因为id必须是唯一的,所以这个javascript只适用于每页一个元素,所以我用它来观察我的登录链接,它对我很有帮助.到现在.

我想使用相同的JavaScript来观察具有类名而不是id的多个链接,如下所示:

<a href="link/to/some/stuff" class="link">link 1</a>
<a href="link/to/some/other/stuff" class="link">link 2</a>
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我无法在模态框中打开任何链接.如果我将类更改为每个链接的id,那么我可以获取列表中的第一个链接以在模态框中打开.

我尝试使用'$$'符号在我的javascript中构建一个链接数组(如下所示),但如果我这样做,那么没有一个链接正确打开

    #document.observe method removed for display purposes
    $$('link').observe('click', function(event) {
        event.stop();
        Modalbox.show(this.href,{title: 'some title', width: 500} );
    });
Run Code Online (Sandbox Code Playgroud)

我的javascript技能显然很糟糕.
有谁知道如何解决这个问题?

Mat*_*ger 5

您的代码只需要两次更改

 $$('.link').each(function() { observe('click', function(event) {
        event.stop();
        Modalbox.show(this.href,{title: 'some title', width: 500} );
    }}));
Run Code Online (Sandbox Code Playgroud)

注意'.link',表示它是一个类名,然后是每个函数将它应用于每个结果.括号可能需要调整,我现在抱着一个婴儿