javascript - jQuery first() 未按预期工作 - 返回容器

标签 javascript jquery

我有一个像这样的简单布局..

	
  $('#link5').on('click', function(event) {
  
      console.log("Link Clicked");
      
      var $element = $( this );
      
      container = $element.closest('.container');
      

      
      first = container.first();
      
      console.log(first);
  
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container">

    <div class="item1">
        <div class="itemcontainer">
            Item 1
            <a id="link1" class="customlink" href="#">
                Click
            </a>
        </div>
    </div>
    
    <div class="item2">
        <div class="itemcontainer">
            Item 2
            <a id="link2" class="customlink" href="#">
                Click
            </a>
        </div>
    </div>
    
    <div class="item3">
        <div class="itemcontainer">
            Item 3
            <a id="link3" class="customlink" href="#">
                Click
            </a>
        </div>
    </div>
    
    <div class="item4">
        <div class="itemcontainer">
            Item 4
            <a id="link4" class="customlink" href="#">
                Click
            </a>
        </div>
    </div>
    
    <div class="item5">
        <div class="itemcontainer">
            Item 5
            <a id="link5" class="customlink" href="#">
                Click
            </a>
        </div>
    </div>
    
    <div class="item6">
        <div class="itemcontainer">
            Item 6
            <a id="link6" class="customlink" href="#">
                Click
            </a>
        </div>
     </div>
    
    <div class="item7">
        <div class="itemcontainer">
            Item 7
            <a id="link7" class="customlink" href="#">
                Click
            </a>
        </div>
    </div>

</div>

当单击链接 5 时,我尝试获取第一个项目 item1,但它向我显示了容器。

我使用的first是错误的吗?

最佳答案

问题是因为您在 .container 本身上调用 first() 。如果您想获取 .item1,请在容器的 children() 上调用 first():

let first = container.children().first();  

$('#link5').on('click', function(event) {
  var $element = $(this);
  let container = $element.closest('.container');
  let first = container.children().first();  
  console.log(first);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container">
  <div class="item1">
    <div class="itemcontainer">
      Item 1
      <a id="link1" class="customlink" href="#">
        Click
      </a>
    </div>
  </div>
  <div class="item2">
    <div class="itemcontainer">
      Item 2
      <a id="link2" class="customlink" href="#">
        Click
      </a>
    </div>
  </div>
  <div class="item3">
    <div class="itemcontainer">
      Item 3
      <a id="link3" class="customlink" href="#">
        Click
      </a>
    </div>
  </div>
  <div class="item4">
    <div class="itemcontainer">
      Item 4
      <a id="link4" class="customlink" href="#">
        Click
      </a>
    </div>
  </div>
  <div class="item5">
    <div class="itemcontainer">
      Item 5
      <a id="link5" class="customlink" href="#">
        Click
      </a>
    </div>
  </div>
  <div class="item6">
    <div class="itemcontainer">
      Item 6
      <a id="link6" class="customlink" href="#">
        Click
      </a>
    </div>
  </div>
  <div class="item7">
    <div class="itemcontainer">
      Item 7
      <a id="link7" class="customlink" href="#">
        Click
      </a>
    </div>
  </div>
</div>

关于javascript - jQuery first() 未按预期工作 - 返回容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57647330/

相关文章:

javascript - SyntaxHighlighter 和 jQuery 的 IE 错误 - "Unable to get value of the property ' slice' : object is null or undefined"

javascript - Json 字符串未显示在我的 jsp 页面上

javascript - jQuery 在很长一段时间后显示结果

javascript - 在 ajax 调用发生时暂停用户

JavaScript:用括号括住逗号分隔值

javascript - React 的不可变元素创建和渲染机制不是效率极低吗?

Javascript 在浏览器/选项卡关闭时显示设计的元素

javascript - 更改页面后关闭选项卡窗口浏览器

javascript - Bootstrap 选择选项验证不起作用

javascript - 如何在非spa项目中使用vue.js?