Javascript onclick函数元素选择器

时间:2017-02-21 12:07:43

标签: javascript onclick

点击 <a href..></a> 时,我需要运行onclick功能。

<div class="gallery">
    <div id="btn">
        <a href="#" id="btnRight" class="right"></a>
    </div>
</div>

<script type="text/javascript">
var element = document.querySelectorAll("a#btnRight.right");   
element.onclick = (function() {

    var count = 0;

    return function(e) {

        count++;
        console.log(count);
        if (count === 3) {

            //...

            count = 0;
        }
    };
})();
</script>

我无法在html中使用<a href="#" onclick=""...></a>,因此我需要选择 a#btnRight.right 。我试过了:

  • var element = document.querySelectorAll("a#btnRight.right");
  • var element = document.querySelector("#btnRight.right");
  • var element = document.getElementById("btnRight").getElementsByClassName("right")[0];
  • var element = document.getElementById("btnRight").getElementsByTagName("a");

但它不起作用。谢谢

4 个答案:

答案 0 :(得分:0)

<div class="gallery">
    <div id="btn">
        <a href="#" id="btnRight" class="right">CLICK ME!</a>
    </div>
</div>

<script type="text/javascript">
    var element = document.getElementById("btnRight");
    element.addEventListener('click', function() {
        var count = 0;
        return function(e) {
            count++;
            console.log(count);
            if (count === 3) {
                //...
                count = 0;
            }
        };
    }()
    )
</script>

答案 1 :(得分:0)

querySelectorAll返回一个nodeList,其中包含具有指定id的所有元素,因此如果只有一个具有该id的元素,则需要将元素更改为element [0],并将元素id更改为btnRight,如下所示: / p>

<div class="gallery">
    <div id="btn">
        <a href="#" id="btnRight" class="right"></a>
    </div>
</div>

<script type="text/javascript">
var element = document.querySelectorAll("#btnRight");   
element[0].onclick = (function() {

    var count = 0;

    return function(e) {

        count++;
        console.log(count);
        if (count === 3) {

            //...

            count = 0;
        }
    };
})();
</script>

当然你也可以像这样使用getElementById:

var element = document.getElementById("btnRight");   
element.onclick =  (function() {

    var count = 0;

    return function(e) {

        count++;
        console.log(count);
        if (count === 3) {

            //...

            count = 0;
        }
    };
})();

答案 2 :(得分:0)

对您的代码进行少许修改:

<div class="gallery">
<div id="btn">
    <a href="#" id="btnRight" class="right">pp</a>
</div>

      

   document.getElementById("btnRight").onclick = CustomFunction;

   function CustomFunction() {

    var count = 0;

    return function (e) {

        count++;
        console.log(count);
        if (count === 3) {

            //...

            count = 0;

        }
    };
}

答案 3 :(得分:-1)

尝试以下选择器,您可以使用其ID选择任何DOM元素,并确保ID在您的DOM中应该是唯一的。

 element = document.getElementById('btnRight');

此外,如果您尝试选择具有“正确”权限的多个元素。那么你应该使用下面的选择器。

 element = document.getElementsByClassName("right");