得到这个ID

我写了自己的jQuery点击函数,但由于一个未知的原因,它不起作用。 我在第4行发生错误。

for (var i = 1;i<=3;i++){
    $("#Block"+i).click(function(){
        $(this).effect("shake", function(){
            if (this == "#Block3"){
                window.open('contact.html','blank');//open link link in a new page
            }
        });
    });
}

你可以帮我吗?


说明

this第4行返回(或者是)一个对象,它是一个DOM元素(比如<div>或类似的东西)。你不能比较对象this和字符串"#Block3"

这两件事情非常不同。 这就像比较梨和苹果。

看看我认为的JavaScript数据类型,它可以帮助你。

文档

请参阅此对象的文档。

获取元素的ID如何使用jQuery获取元素的ID?

编辑你的代码

您必须获取对象的ID (this),然后将其与字符串“Block3”进行比较

for (var i = 1; i <= 3; i++) {
    $("#Block" + i).click(function() {
        $(this).effect("shake", function() {
            if (this.id == "Block3") {
                window.open('contact.html', 'blank'); //open link link in a new page
            }
        });
    });
}

编辑你的代码2

jQuery在这里帮助你减少代码。 花一些时间看一些教程。

你的代码可以缩短为这样的东西

$('.blocks-container').on('click', '.block', function() {
  $(this).effect('shake', function() {
    if (this.id == 'Block3')
      window.open('contact.html', 'blank'); //open link link in a new page
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="blocks-container">
  <div id="Block1" class="block">Block1</div>
  <div id="Block2" class="block">Block2</div>
  <div id="Block3" class="block">Block3</div>
  <div id="Block4" class="block">Block4</div>
  <div id="Block5" class="block">Block5</div>
</div>

this在你的代码中是一个DOMElement。 当被强制为一个字符串时,它将永远不会匹配#Block3 ,因此你的if条件永远不会命中。

假设你想匹配id特定的元素,那么你只需要比较对id的属性this

(var i = 1; i <= 3; i++){
    $("#Block" + i).click(function(){
        $(this).effect("shake", function(){
            if (this.id === "Block3") {
                window.open('contact.html', 'blank');
            }
        });
    });
}

还要注意,将所有#BlockX元素上的公共类放在所有元素上并使用单个事件处理程序将会更好:

$('.block').click(function() {
  $(this).effect("shake", function(){
    if (this.id === 'Block3')
      alert('you clicked block3!');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<div id="Block1" class="block">Block1</div>
<div id="Block2" class="block">Block2</div>
<div id="Block3" class="block">Block3</div>
<div id="Block4" class="block">Block4</div>
<div id="Block5" class="block">Block5</div>
链接地址: http://www.djcxy.com/p/83313.html

上一篇: get ID of this

下一篇: Checking Id of clicked element