【问题标题】:Dynamically determining which link was clicked with JQuery使用 JQuery 动态确定点击了哪个链接
【发布时间】:2012-06-05 20:48:13
【问题描述】:

所以我正在开发一个仪表板(单页)类型的应用程序,并且我有一组链接:

<a href = "#">3s01</a>
<a href = "#">5e02</a>
<a href = "#">2k01</a>
<a href = "#">3a01</a>
<a href = "#">5j01</a>
etc...

填充标签之间的文本的方式是使用 JQuery 从 xml 文件中获取数据。因为 xml 文件可以更改,所以链接不是静态的。我的任务是能够单击链接并找出标签之间的文本是什么,以便我可以相应地在页面上填充表格。唯一的问题是我不知道如何使用 JQuery/Javascript/html/whatever 获取这些数据。任何帮助将不胜感激!

【问题讨论】:

    标签: javascript jquery html dynamic hyperlink


    【解决方案1】:

    在处理程序中使用this

    $('a[href="#"]').click(function() { alert(this); });
    

    要获取文本,请使用.text()...

    alert($(this).text());
    

    或者没有官方支持但速度更快的版本,$.text()...

    alert($.text([this]));
    

    【讨论】:

      【解决方案2】:
      $('a[href=#]').on('click', function(e) {
        e.preventDefault();
        alert($(this).text());
      });
      

      但是如果你 a 是动态生成的,那意味着,在 DOM 准备好之后生成,那么你应该尝试

      $('body').on('click', 'a[href=#]', function(e) {
           e.preventDefault();
           alert($(this).text());
      }); 
      

      在这里,您可以使用 ANY Valid Selector 代替 body,它是已经属于 DOM 的 a 标签的父级。

      了解更多关于 .on()

      【讨论】:

      • 这应该会更好,因为on( 将处理动态加载的内容
      • @MarkSchultheiss 呵呵.. 不,它没有.. 上面的.on 语法不处理动态内容。
      • @MarkSchultheiss:不,它没有。
      • 哎呀,我的错 :) 忘了注意它应该是$(document).on('click','a' function() {
      • @MarkSchultheiss:是的,尽管将委托处理程序绑定到“全局”容器并不好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-17
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多