【问题标题】:Referencing the anchor tag that was clicked: What am I doing wrong?引用被点击的锚标签:我做错了什么?
【发布时间】:2015-07-21 19:32:02
【问题描述】:

我一直在努力

“无法读取未定义的属性‘split’”

,向我表明以下代码中的$(this) 未定义。这是为什么呢?

HTML:

<tbody>
   <tr>
      <td><a class='edit-link' id='jobid-3'>Motion Designer</a></td>
      <td>2015-07-21 11:06:57</td>
   </tr>
   <tr>
      <td><a class='edit-link' id='jobid-2'>Web Developer</a></td>
      <td>2015-07-21 09:53:36</td>
   </tr>
   <tr>
      <td><a class='edit-link' id='jobid-1'>Creative Team Manager</a></td>
      <td>2015-07-21 09:41:20</td>
   </tr>
</tbody>

JS:

<script type="text/javascript">
    jQuery('.edit-link').click(function() {
    {
        var thisJobId = jQuery(this).attr('id').split('-')[1];
        console.log("thisJobId = " + thisJobId); // test
    });
<script>

【问题讨论】:

  • 你没有处理这个事件
  • @kmsdev 抱歉,输入-o
  • 你的代码在页面底部吗?如果没有,您可能会尝试在链接存在于 DOM 之前附加链接。
  • 你现在多了一个{

标签: javascript jquery html javascript-events event-handling


【解决方案1】:

您的代码示例中没有事件绑定。

所以这样使用

jQuery('.edit-link').on("click", function() {
    var thisJobId = jQuery(this).attr('id').split('-')[1];
    console.log("thisJobId = " + thisJobId); // test
});

【讨论】:

    【解决方案2】:

    工作代码:

    将点击处理程序附加到类:

    $('.edit-link').click(function(){
       
            var thisJobId = jQuery(this).attr('id').split('-')[1];
            console.log("thisJobId = " + thisJobId); // test
        });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <tbody>
       <tr>
          <td><a class='edit-link' id='jobid-3'>Motion Designer</a></td>
          <td>2015-07-21 11:06:57</td>
       </tr>
       <tr>
          <td><a class='edit-link' id='jobid-2'>Web Developer</a></td>
          <td>2015-07-21 09:53:36</td>
       </tr>
       <tr>
          <td><a class='edit-link' id='jobid-1'>Creative Team Manager</a></td>
          <td>2015-07-21 09:41:20</td>
       </tr>
    </tbody>

    【讨论】:

      【解决方案3】:

      你需要添加click事件属性:

      jQuery('.edit-link').click(function(){
          var thisJobId = jQuery(this).attr('id').split('-')[1];
          console.log("thisJobId = " + thisJobId); // test
      });
      

      【讨论】:

        【解决方案4】:

        你需要修改javascript:

        $('.edit-link').click(function(event) {
            var thisJobId = event.target.id.split('-')[1];
            console.log("thisJobId = " + thisJobId);
        });
        

        点击元素时执行上述函数。在事件对象内部有一个 target 属性,其中包含被单击的 DOM 元素。我正在检索它的 id 并仅返回您需要的部分。

        fiddle

        【讨论】:

          猜你喜欢
          • 2013-10-22
          • 2015-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多