仅选择<a> inside div with js</a>

时间:2013-08-07 14:01:00

标签: 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>

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

我在想这样的事情:

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

但是这会阻止链接工作。 我只是希望JavaScript停止,而不是阻止<a>正常运行!

enter image description here

2 个答案:

答案 0 :(得分:6)

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

$('#acr_btn_title a:first').click(function() { 
    return false; 
});

我建议您使用preventDefault()stopPropagation()代替return false,但是:

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

请注意,无法确保在点击链接时调用javascript。但您可以做的是将链接逻辑添加到click事件,但是阻止默认值:

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

    //Your javascript goes here

    location.href = $(this).prop('href');
});

你也可以使用gt()将第一个放在手风琴逻辑(如果你控制它)上:

$('#acr_btn_title a:gt(0)').accordionPlugin();

或引用a元素 设置为href元素。 #

$('#acr_btn_title a[href!=#]').accordionPlugin();

答案 1 :(得分:-2)

由于您使用的是jQuery,请尝试$($("#acr_btn_title a")[0])