Click()方法不适用于HyperLink对象

时间:2011-04-16 19:33:56

标签: javascript

我试图通过java脚本代码在超级链接的对象上动态调用click()方法。获取click()不是方法的错误。

有人可以让我知道我该怎么做。我试图将这个对象包裹在Mootools和JQuery对象周围。还没有通过。

这是一些代码演示

<a href="abc.jsp" id="myLink1">Click here</a>
<a href="abcd.jsp" id="myLink2">Click here</a>

<script>
jQuery(document).ready(){
        $('myLink1').click(function() {
       //doing some reporting stuff
        });

       $('myLink2').click(function() {
       //doing some reporting stuff
       });
  }

//I need some way ,click event to be fired on links depending on some conditions.

function clickDynamically()
{
  if(clickFirstLink)
         document.getElementById('myLink1').click(); // does not work , it says click is not a method
  else
    document.getElementById('myLink2').click();
}
</script>

3 个答案:

答案 0 :(得分:1)

如果你正在使用jQuery,你会这样做:

$("#mylink").click();

如果你没有使用jQuery,你会这样做:

document.getElementById('mylink').click();

注意,您需要确保首先设置事件处理程序。在jQuery中,你会这样做:

$("#mylink").click(function() { alert("works"); });

修改

在回复您的评论时,这是一个可以构建的工作示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Page Title</title>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

    <script type="text/javascript" charset="utf-8">

        $(function() {

            // Example #1
            // Set up different click handlers on each link
            // Be sure to return false so the browser DOESN'T
            // follow the links.

            $("#link-1").click(function() {

                alert("Link #1");

                return false;

            });

            $("#link-2").click(function() {

                alert("Link #2");

                return false;

            });

            //////// OR /////////

            // Example #2
            // Set up 1 click handler and use logic to determine
            // which link was clicked.
            // Be sure to return false so the browser DOESN'T
            // follow the links.

            $("#link-1, #link-2").click(function() {

                var $LinkThatWasClicked = $(this);

                if ($LinkThatWasClicked.attr("id") == "link-1") {

                    // Do something if it's link 1
                    alert("We figured out it is link #1");

                } else {

                    // Do something if it's link 2
                    alert("We figured out it is link #2");

                }

                return false;

            });

        });

    </script>

</head>
<body>

    <a href="#" id="link-1">Click Link #1</a>
    <a href="#" id="link-2">Click Link #2</a>

</body>
</html>

我认为你发布的jQuery代码的问题只是你在myLink之前忘记了哈希符号。它告诉jQuery查找ID myLink的元素。没有哈希,jQuery正在寻找一个tagName myLink的元素,这是无效的。

希望这个例子有所帮助。

答案 1 :(得分:0)

你可以这样做:

window.location = document.getElementById("myLink").href;

答案 2 :(得分:0)

  jQuery(document).ready(){
        $('yourVar').click(function() {
       //your code
    });
  }

它可以在任何情况下工作:)