使用js仅在div中选择<a>

Gho*_*cho -1 javascript jquery

如何使用JavaScript在此代码中选择第一个a?(HREF = some.php)

<div class="accordionButton"><div id="acr_btn_title"><a href="some.php"><p>stuff</p></a></div><div class="hn_little_box"></div></div>
            <div class="accordionContent" >
                <ul>
                    <li><a href="page_01">Page 01</a></li>
                    <li><a href="page_02">Page 02</a></li>
                    <li><a href="page_03">Page 03</a></li>
                </ul>
        </div>
Run Code Online (Sandbox Code Playgroud)

我想这样做,当<a>点击它时,JavaScript不会执行.这是一个手风琴侧导航,因此当它被点击时,手风琴不会扩展,但仍然告诉浏览器转到那个页面.

我在想这样的事情:

 <script type="text/javascript">
  $('#acr_btn_title a').click(function() {
      return false;
  });
  </script>
Run Code Online (Sandbox Code Playgroud)

但这会阻止链接工作. 我只想让JavaScript停止,而不是停止<a>运行!

在此输入图像描述

h2o*_*ooo 6

你非常接近,但如果你只想要第一个,请使用:first选择器:

$('#acr_btn_title a:first').click(function() { 
    return false; 
});
Run Code Online (Sandbox Code Playgroud)

我建议你使用preventDefault()stopPropagation()不是return false,但是:

$('#acr_btn_title a:first').click(function(e) { 
    e.preventDefault();
    e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)

请注意,单击链接时无法确保调用javascript.你可以做的是,为click事件添加链接逻辑,但是阻止默认:

$('#acr_btn_title a:first').click(function(e) { 
    e.preventDefault();
    e.stopPropagation();

    //Your javascript goes here

    location.href = $(this).prop('href');
});
Run Code Online (Sandbox Code Playgroud)

您也可以将手风琴逻辑(如果你控制它)上的任何东西,但使用的第一个gt():

$('#acr_btn_title a:gt(0)').accordionPlugin();
Run Code Online (Sandbox Code Playgroud)

或者引用属性设置为eg的a元素.:href#

$('#acr_btn_title a[href!=#]').accordionPlugin();
Run Code Online (Sandbox Code Playgroud)