单个脚本可以用于两个或多个Anchor按钮点击吗?

时间:2010-02-03 07:29:22

标签: javascript jquery scripting button anchor

在我的页面中有两个'Conatct Selected'锚点按钮,一个在顶部,id为“selectAllLink”,另一个在底部,id为页面的“selectAllLinkB”。最好的一个使用以下脚本完美地工作:

<script type="text/javascript">

$(function() {
    $('#selectAllLink').each(function() {
        var a = [];
        var n = $("td.title_listing input:checked");
        var s = "";

        n.each(function() {
            a.push(this.value);
        });
        s = a.join(',');

        if (a.length > 0)
            this.href = "/D_ContactSeller.aspx?property=" + s;
        else
            this.href = 'javascript:alert("Select at least one property to contact!");';
        return false;
    });
});

现在我的底部锚点按钮我试着把它的id作为'selectAllLinkB'并改变了这样的代码:

    <script type="text/javascript">

    $(function() {
        $('#selectAllLink, selectAllLinkB').each(function() {
            var a = [];
            var n = $("td.title_listing input:checked");
            var s = "";
           .....
           .....
           .....
    });

是否有任何简单的方法可以为锚点按钮事件调用脚本? 等待快速和良好的反应。在此先感谢...

3 个答案:

答案 0 :(得分:4)

你很亲密。选择器应为'#selectAllLink, #selectAllLinkB'

但是,您可能希望使用click方法而不是each来注册click事件,而不是在加载时设置href属性。现在,您将获得在加载页面时检查的复选框,而不是单击链接时的复选框。

答案 1 :(得分:1)

您已经遇到了使用不显眼的JavaScript来修改href的麻烦,甚至还有jQuery。没有理由使用这种方法

this.href = 'javascript:alert("Select at least one property to contact!");';

相反,您应该考虑使用更现代的事件注册方法:

$(function() {
    $('#selectAllLink, #selectAllLinkB').click(function(e) {
        var a = [];
        $("td.title_listing input:checked").each(function() {
            a.push(this.value);
        });

        if ( a.length ) {
            this.href = "/D_ContactSeller.aspx?property=" + a.join(',');
        } else {
            e.preventDefault();
            alert("Select at least one property to contact!");
            return false;
        }
    });
});

答案 2 :(得分:0)

我会从id更改为类,所以类似于:

<script type="text/javascript"> 

$(function() { 
    $('.selectAllLink').each(function() { ...
    }
}