得到这个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