从兄弟姐妹的 child jQuery 获取 href 属性?

Get href attribute from sibling's child jQuery?

我正在使用以下代码尝试从另一个元素获取 href 数据,它一直返回 "undefined" 我做错了什么?

$('.linkbutton').bind('click', function(e) {
        e.preventDefault();
        var flagURL = $(this).siblings().next('.flag-action').attr('href');
        console.log(flagURL);
    });
<div class="linkbutton">
<h4 class="quoteflag">
    <a href="/demo/url/here" title=" " class="flag-action">
    </a>
</h4>

而不是

var flagURL = $(this).siblings().next('.flag-action').attr('href');

试试下面的代码:

var flagURL = $(this).siblings().find('.flag-action').attr('href');

因为 next() 选择器将 return 你是下一个兄弟姐妹。但是你需要下一个兄弟姐妹的child。 Find() 选择器将为您提供特定元素的所有后代。在你的情况下,你也可以使用 children() 选择器而不是 find() 因为你试图找到 H4 元素的直接 child。

您必须使用 .find() 而不是 .next(),因为 flag-action 是一个子元素,而不是 quoteflag 旁边的元素

$('.linkbutton').bind('click', function(e) {
  e.preventDefault();
  var flagURL = $(this).siblings().find(".flag-action").attr("href");
  console.log(flagURL);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="linkbutton">click</div>
<h4 class="quoteflag">
  <a href="/demo/url/here" title=" " class="flag-action">
  </a>
</h4>

您可以使用 find('.flag-action') 获得 href,因为 a.linkbutton 的子代,例如:

$('.linkbutton').bind('click', function(e) {
        e.preventDefault();
        var flagURL = $(this).find('.flag-action').attr('href');
        alert(flagURL);
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="linkbutton">Click here
<h4 class="quoteflagdiv">
    <a href="/demo/url/here" title=" " class="flag-action">
    </a>
</h4>

$('.linkbutton').bind('click', function(e) {
        e.preventDefault();
        
        var flagURL = $(this).siblings().find('.flag-action').attr('href');
        console.log(flagURL);
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="linkbutton">linkbutton div</div>
<h4 class="quoteflag">
    <a href="/demo/url/here" title=" " class="flag-action">
    </a>
</h4>