是否可以在<a>jquery中使用标签识别多个链接



我在类link_div中有两个链接。

<div class="link_div">
 <a id="upload_link" href='' >Upload File</a>
 <a id="search_link" href='' >Search File </a>
</div>

我的要求是点击每个链接将显示一个div。显示的div内容将几乎相同,除了一些小的变化。所以我想写这样的代码:

$(".link_div a").click(function(e){
                    e.preventDefault();
                    alert($(".link_div a").attr('id'));
                    $("._new_filesharing_div").show();
                    return false;
                });

我的想法是获得点击链接的id,并使用if循环来检查单击哪个链接,从而在单击upload file link时为upload添加按钮,并在单击search file link时为search添加按钮。其余内容几乎相同。

在这里,即使用户单击了另一个链接,我也总是将链接的已单击Id作为upload_link。我认为jquery取的是第一个标签的id。我想知道是否可以获得点击链接的ID或者我应该为每个链接分别编写代码

在事件处理程序中,被单击的元素是this(更具体地说,是您绑定的元素,它可以是真正被单击的元素的父元素)。

改变
alert($(".link_div a").attr('id'));

alert(this.id);

注意:不要仅仅为了获得DOM对象的标准属性而创建jQuery对象。$(this).attr('id')不仅速度慢,而且可读性差,而且换行完全没用。

$(".link_div a")将返回.link_div中的所有a标记,attr将返回该集合的第一个元素的id。所以你的代码不能工作。在此场景中实现目标的首选方法是使用:

this.id

当jQuery设置事件回调函数context到触发事件的元素时,它将返回被点击的链接。

但是如果在代码的后面部分需要jquery对象。你可以这样排序:

var aTag = $(this);
aTag.data('blaKey','blaValue');

最新更新