javascript - 获取最近的 anchor 标记的值和href?

标签 javascript jquery html

我正在尝试根据附近的按钮获取最近的 anchor 标记的值和 href 链接。正如您所看到的,这是 anchor 标记和按钮的列表。因此想要在单击按钮时定位特定的 anchor 标记。我正在记录以查看名称和 href,但显示为空且未定义。我做错了什么?

$(document).ready(function() {
    $('.input_fields_wrap').on("click",".addlink-edit-icon",function (e) {
        e.preventDefault();
        var target = $('.show_field').closest('a');
        var edit_name = target.text();
        var edit_address = target.attr('href');
        console.log('name', edit_name );
        console.log('address', edit_address);
   
    });
});
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>


</head>

<body>
  <div class="input_fields_wrap" style="overflow-y: hidden;">

    <div class="addlink_dynlist">
      <li>
        <a href="aaaaaaaaaaaa">aaaaaaaa</a>
        <span class="show_field">
                 <button class="fa fa-pencil-square-o addlink-edit-icon hand-cursor">edit</button>

        </span>
      </li>
      <li>
        <a href="bbbb">bbbbbbbbbb</a>
        <span class="show_field">
                 <button class="fa fa-pencil-square-o addlink-edit-icon hand-cursor">edit</button>

        </span>
      </li>
      <li>
        <a href="ccc">cccccccccc</a>
        <span class="show_field">
                 <button class="fa fa-pencil-square-o addlink-edit-icon hand-cursor">edit</button>

        </span>
      </li>
    </div>
  </div>



  <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
    crossorigin="anonymous"></script>

  <script src="./js/test.js"></script>

</body>

</html>

最佳答案

需要先向上遍历 DOM 到列表项,用 .closest('li')然后使用 .find('a') 进入链接。本质上,只需更改:

var target = $('.show_field').closest('a'); 

var target = $(this).closest('li').find('a');

$(document).ready(function() {
    $('.input_fields_wrap').on("click",".addlink-edit-icon",function (e) {
        e.preventDefault();
        var target = $(this).closest('li').find('a');
        var edit_name = target.text();
        var edit_address = target.attr('href');
        console.log('name', edit_name );
        console.log('address', edit_address);

    });
});
<div class="input_fields_wrap" style="overflow-y: hidden;">
  <div class="addlink_dynlist">
    <li>
      <a href="aaaaaaaaaaaa">aaaaaaaa</a>
      <span class="show_field">
                 <button class="fa fa-pencil-square-o addlink-edit-icon hand-cursor">edit</button>
        </span>
    </li>
    <li>
      <a href="bbbb">bbbbbbbbbb</a>
      <span class="show_field">
                 <button class="fa fa-pencil-square-o addlink-edit-icon hand-cursor">edit</button>
        </span>
    </li>
    <li>
      <a href="ccc">cccccccccc</a>
      <span class="show_field">
                 <button class="fa fa-pencil-square-o addlink-edit-icon hand-cursor">edit</button>
        </span>
    </li>
  </div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

关于javascript - 获取最近的 anchor 标记的值和href?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49370433/

相关文章:

javascript - 使用 Decimal.js 计算两个数字之间的百分比增加/减少的正确方法是什么?

javascript - Accordion 部分,单击图像以旋转图标

javascript - 使用 JavaScript 制作轮播

javascript - 同位素砌体网格问题

javascript - 如何从 Instagram 获取基于用户和基于标签的照片

javascript - jQuery .html() 方法关闭 <p> 标签问题?

javascript - highcart.js pointInterval 为 15 天日期时间 x 轴

javascript - 拖放项目并在数据库中更新后,如何在 jQuery Nestable 插件中获取子项和 ID?

html - 媒体查询停止工作

HTML 输入模式验证不起作用