Javascript 获取最近锚定标记的值和href?

Javascript 获取最近锚定标记的值和href?,javascript,jquery,html,Javascript,Jquery,Html,我试图根据附近的按钮获取最近的锚标记的值和href链接。如您所见,这是锚定标记和按钮的列表。所以,当点击一个按钮时,我们想要瞄准那个特定的锚定标记。我正在登录以查看名称和href,但显示为空且未定义。我做错了什么 $(文档).ready(函数(){ $('.input_fields_wrap')。在(“单击”、“.addlink编辑图标”上,函数(e){ e、 预防默认值(); var target=$('.show_字段')。最近('a'); var edit_name=target.tex

我试图根据附近的按钮获取最近的锚标记的值和href链接。如您所见,这是锚定标记和按钮的列表。所以,当点击一个按钮时,我们想要瞄准那个特定的锚定标记。我正在登录以查看名称和href,但显示为空且未定义。我做错了什么

$(文档).ready(函数(){
$('.input_fields_wrap')。在(“单击”、“.addlink编辑图标”上,函数(e){
e、 预防默认值();
var target=$('.show_字段')。最近('a');
var edit_name=target.text();
var edit_address=target.attr('href');
console.log('name',edit_name);
console.log('地址',编辑地址);
});
});

文件
  • 编辑
  • 编辑
  • 编辑

  • 函数
    最近的
    使用特定选择器而不是同级查找最近的祖先/父元素

    在该标记中,要选择的链接不是按钮的祖先/父级。

    此外,必须修改此行:

    var target = $('.show_field').closest('a');
    
                   +---- This is the current clicked button.
                   |
                   |                         +--- Gets the desired element 'a'
                   |                         |
                   v                         v
    var target = $(this).closest('li').find('a');
                                  ^
                                  |
                                  +---- Finds the closest ancestor 'li'.
    
    对此:

    var target = $('.show_field').closest('a');
    
                   +---- This is the current clicked button.
                   |
                   |                         +--- Gets the desired element 'a'
                   |                         |
                   v                         v
    var target = $(this).closest('li').find('a');
                                  ^
                                  |
                                  +---- Finds the closest ancestor 'li'.
    
    另一种方法是查找最近的元素
    li
    ,然后查找元素
    a

    $(文档).ready(函数(){
    $('.input_fields_wrap')。在(“单击”、“.addlink编辑图标”上,函数(e){
    e、 预防默认值();
    var target=$(this.nexist('li')。find('a');
    var edit_name=target.text();
    var edit_address=target.attr('href');
    console.log('name',edit_name);
    console.log('地址',编辑地址);
    });
    });
    
    
    文件
    
  • 编辑
  • 编辑
  • 编辑

  • 函数
    最近的
    使用特定选择器而不是同级查找最近的祖先/父元素

    在该标记中,要选择的链接不是按钮的祖先/父级。

    此外,必须修改此行:

    var target = $('.show_field').closest('a');
    
                   +---- This is the current clicked button.
                   |
                   |                         +--- Gets the desired element 'a'
                   |                         |
                   v                         v
    var target = $(this).closest('li').find('a');
                                  ^
                                  |
                                  +---- Finds the closest ancestor 'li'.
    
    对此:

    var target = $('.show_field').closest('a');
    
                   +---- This is the current clicked button.
                   |
                   |                         +--- Gets the desired element 'a'
                   |                         |
                   v                         v
    var target = $(this).closest('li').find('a');
                                  ^
                                  |
                                  +---- Finds the closest ancestor 'li'.
    
    另一种方法是查找最近的元素
    li
    ,然后查找元素
    a

    $(文档).ready(函数(){
    $('.input_fields_wrap')。在(“单击”、“.addlink编辑图标”上,函数(e){
    e、 预防默认值();
    var target=$(this.nexist('li')。find('a');
    var edit_name=target.text();
    var edit_address=target.attr('href');
    console.log('name',edit_name);
    console.log('地址',编辑地址);
    });
    });
    
    
    文件
    
  • 编辑
  • 编辑
  • 编辑

  • 您需要先使用
    .nexist('li')
    遍历DOM到列表项,然后使用
    .find('a')
    向下遍历到链接。本质上,只要改变:

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

    $(文档).ready(函数(){
    $('.input_fields_wrap')。在(“单击”、“.addlink编辑图标”上,函数(e){
    e、 预防默认值();
    var target=$(this.nexist('li')。find('a');
    var edit_name=target.text();
    var edit_address=target.attr('href');
    console.log('name',edit_name);
    console.log('地址',编辑地址);
    });
    });
    
    
    
  • 编辑
  • 编辑
  • 编辑

  • 您需要先使用
    .nexist('li')
    遍历DOM到列表项,然后使用
    .find('a')
    向下遍历到链接。本质上,只要改变:

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

    $(文档).ready(函数(){
    $('.input_fields_wrap')。在(“单击”、“.addlink编辑图标”上,函数(e){
    e、 预防默认值();
    var target=$(this.nexist('li')。find('a');
    var edit_name=target.text();
    var edit_address=target.attr('href');
    console.log('name',edit_name);
    console.log('地址',编辑地址);
    });
    });
    
    
    
  • 编辑
  • 编辑
  • 编辑

  • 您是否无法针对您的情况使用
    .nestest()
    ?我想你误解了。它有最接近的祖先。这就是你用来获取
    show\u字段
    元素的方法(例如,
    $(this)。最近('.show\u字段')
    @mikemcaughan,谢谢你的澄清。你不能在你的情况下使用
    .closest()
    吗?我想你误解了。它得到了最近的祖先。这就是你用来获取
    show\u字段
    元素的方法(例如,
    $(this)。最近('.show_field')
    @MikeMcCaughan,感谢您的澄清。非常感谢,理解最近()是问题。感谢,理解最近()是问题