代码之家  ›  专栏  ›  技术社区  ›  TheDeveloper

如何获取锚标记的子值?

  •  1
  • TheDeveloper  · 技术社区  · 8 年前
    <a href="www.yahoo.com"> 
            <div id="id11" data-link="yah">
                <div class="s1">
                    <div class="s2" style="color: white">abc</div>
                    <div class="s3" style="color: white">xyx</div>
                </div>
            </div>
    </a>
    <a href="www.google.com"> 
             <div id="id11" data-link="goog"> <div class="s1">
                    <div class="s2" style="color: white">abc</div>
                    <div class="s3" style="color: white">xyx</div>
                </div>
            </div>
    </a>
    

    我想在其父href value=www.yahoo时获得数据链接的值。com或www.google。通用域名格式 有人能建议怎么做吗?

    4 回复  |  直到 8 年前
        1
  •  2
  •   bhansa    8 年前

    使用jquery click data 价值使用 .children() .data()

    $(document).ready(function() {
    
      $("a").on("click", function() {
    
          console.log($(this).children().data("link"));
    
      });
    
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <a href="//www.yahoo.com">
      <div id="id11" data-link="yah">
        <div class="s1">
          <div class="s2" style="color: white">abc</div>
          <div class="s3" style="color: white">xyx</div>
        </div>
      </div>
    </a>
    
    <a href="//www.google.com">
      <div id="id12" data-link="goog">
        <div class="s1">
          <div class="s2" style="color: white">abc</div>
          <div class="s3" style="color: white">xyx</div>
        </div>
      </div>
    </a>
        2
  •  1
  •   Renzo Calla    8 年前

    var a = document.querySelectorAll('a');
    Array.prototype.forEach.call(a,function(item){
      if(item.href.match(/www.yahoo.com/) || item.href.match(/www.google.com/)){
      var child=item.children[0];
      console.log(child.getAttribute('data-link'));
      }
    });
    <a href="www.yahoo.com"> 
            <div id="id11" data-link="yah">
                <div class="s1">
                    <div class="s2" style="color: white">abc</div>
                    <div class="s3" style="color: white">xyx</div>
                </div>
            </div>
    </a>
    <a href="www.google.com"> 
             <div id="id11" data-link="goog"> <div class="s1">
                    <div class="s2" style="color: white">abc</div>
                    <div class="s3" style="color: white">xyx</div>
                </div>
            </div>
    </a>
        3
  •  1
  •   gaetanoM    8 年前

    ID必须唯一。根据罗伊的评论,你的HREF不是以协议开始的。

    如果需要直接从另一个函数获取数据链路,可以编写:

    $('a[href="www.yahoo.com"] > [data-link], a[href="www.google.com"] > [data-link]')
    

    代码段:

    $('a[href="www.yahoo.com"], a[href="www.google.com"]').on('click', function(e) {
        if ($(this).children('div[data-link]').length != 0) {
            e.preventDefault();
            console.log($(this).children('div[data-link]').data('link'));
        }
    })
    
    //
    // ..or without events
    //
    $('a[href="www.yahoo.com"] > [data-link], a[href="www.google.com"] > [data-link]')
       .each((idx, ele) => console.log(ele.dataset.link))
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    
    <a href="www.yahoo.com">111
        <div id="id11" data-link="yah">
            <div class="s1">
                <div class="s2" style="color: white">abc</div>
                <div class="s3" style="color: white">xyx</div>
            </div>
        </div>
    </a>
    <a href="www.google.com">222
        <div id="id12" data-link="goog"> <div class="s1">
            <div class="s2" style="color: white">abc</div>
            <div class="s3" style="color: white">xyx</div>
        </div>
        </div>
    </a>
        4
  •  1
  •   Laura Landuyt    8 年前
    $(document).ready(function() {
    
      $("a").on("click", function() {
    
          console.log($(this).children(".subData").attr("data-link"));
      });
    
    })
    

    <div id="id12" data-link="goog" class="subData">