在变量jquery中使用选择器

时间:2013-03-13 08:17:50

标签: javascript jquery jquery-selectors

我必须在点击链接时创建this之类的功能,它会在弹出框中显示产品详细信息 这是使用我不理解的大jquery代码

这是我的jsfiddle  我试图给出一些带有不同#tags的链接,以显示div 我希望当我点击链接它解析相同的href值并显示相应的结果,但它没有工作 有人可以建议正确的方式 这是我的JS

$(".show").click(function() {
    var link = $('this').attr('href');
  $(link).show();

});

和html

<a href="#popup" id="show" class="show">a</a>
<a href="#popup1" id="show1" class="show">b</a>
<a href="#popup2" id="show2" class="show">c</a>

我想在锚点击

上显示#popup

fiddle上的完整代码,我希望this functionality

2 个答案:

答案 0 :(得分:3)

您应该致电$(this),而不是$('this')

  • $(this)this引用的对象包装在jQuery对象中,
  • $('this')将遍历您的所有文档,查找标记为this的html节点(很像$('div')将查找标记为div的html节点);由于没有,它将选择一个空的节点列表。

工作小提琴:http://jsfiddle.net/Hg4zp/3/

(还有一个拼写错误,调用.hide(")而不是.hide()

答案 1 :(得分:0)

尝试这种方式:

$(".show").click(function (e) { //<-----pass the event here
   e.preventDefault(); //<--------------stop the default behavior of the link
   var link = $(this).attr('href'); //<-remove the quotes $(this)
   $(link).show();
});

$(".close").click(function () {
   $(this).closest("div.popupbox").hide(); //<----use .hide(); not .hide(");
});

在这些情况下,您应该使用preventDefault()来停止点击链接时发生的跳转。