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

Tec*_*chy -1 html jquery hyperlink

我有一个link_div像这样的类中的2个链接.

<div class="link_div">
 <a id="upload_link" href='' >Upload File</a>
 <a id="search_link" href='' >Search File </a>
</div>
Run Code Online (Sandbox Code Playgroud)

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

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

我的想法是获取点击链接的ID并使用if循环检查点击了哪个链接,从而添加一个按钮,用于upload 单击upload file link并添加按钮以search进行单击search file link.内容的恢复几乎相同.

在这里,我总是点击Id链接,upload_link因为用户点击了另一个链接.我认为jquery正在获取第一个标签的id.我可以知道是否可以获取所点击链接的ID,或者我应该单独为每个链接编写代码

Den*_*ret 5

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

更改

alert($(".link_div a").attr('id'));
Run Code Online (Sandbox Code Playgroud)

alert(this.id);
Run Code Online (Sandbox Code Playgroud)

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

  • `this.id`效率更高 (2认同)
  • man ...`this.id`需要两个步骤,然后使用`$(this).attr('id')`更快.[看看会发生什么](https://github.com/jquery/jquery/blob/master/src/attributes/attr.js#L26)当你使用`.attr()`方法时...... (2认同)
  • @ C-link当你在做`$(this).attr("id")`你基本上是在说:"我对DOM API一无所知,所以相反我会完全包好具有带jQuery选择集的id属性的对象,然后将其视为一个并将其id作为字符串查询其属性并返回它.这不仅仅是更慢更长,更糟糕.请考虑阅读有关DOM的更多信息API. (2认同)