如何根据单击的链接更改单击事件的结果

时间:2014-06-12 02:44:43

标签: javascript html perl cgi

在我的代码中,我从ldap搜索的输出创建了一个表,输出(以数组的形式)在第一列中。我想要做的是取决于点击的链接,在第二列中显示一些文本。我已经想出如何获得" Hello World"出现,但无论我选择哪个链接,它都会出现。有没有办法根据用户点击的链接进行文本更改?例如,如果用户单击链接1,则右列将显示" Hello"但如果用户选择链接2,则右栏显示" Goodbye"。我的想法是

If (link that's clicked text eq $textToMatch) {
    print some text
}

这是我的代码:

if (($corpId ne "")&&($CorpIdResults eq "")) {
    print "This user does not belong to any groups.";
} elsif ($CorpIdResults ne "") {
    @splitarray = split(' ',$CorpIdResults);
    print "Corp Id: " . $corpId;
    print "<BR>";
    print "<BR>";
    print "This user is a member of the following groups:";
    print "<BR>";
    print "<TABLE border=22>";
    foreach $tmp (@splitarray) {
        print "<TR>";
        $links = "<a href = 'javascript:testFunction()' id='groups' >$tmp \n</a><BR>";
        print "<TD>$links</TD>";
    }
    print "<TD id='demo'></TD>";
    print "</TR>";
    print "</TABLE>";
}

希望我说得那么清楚。如果没有,请告诉我。

1 个答案:

答案 0 :(得分:2)

要根据某些操作更改javascript函数的行为,您需要将其传递给变量。你可以通过让链接传递给自己的引用来在javascript中完成腿部工作:

<a href='#' onclick='testFunction(this); return false;'>Hello</a>
<a href='#' onclick='testFunction(this); return false;'>Goodbye</a>

然后,您可以在函数中使用此引用,例如:

function testFunction(link) {
    var text;
    if (link.innerHTML == "Hello") {
        text = "Hello";
    } else if (link.innerHTML == "Goodbye") {
        text = "Goodbye";
    }

    document.getElementById('demo').innerHTML = text;
}

或者您可以在Perl中执行legwork并生成传递所需文本的链接:

<a href='#' onclick='testFunction("Hello"); return false;'>Hello</a>
<a href='#' onclick='testFunction("Goodbye"); return false;'>Goodbye</a>

然后直接在javascript中使用文本:

function testFunction(text) {
    document.getElementById('demo').innerHTML = text;
}