jQuery从特定的孩子获取链接

时间:2015-03-11 13:57:38

标签: javascript jquery html

是否可以做以下事情?

我有这个div:

<div class="articleBoxContent">
   <h2><a href="myLink">Title</h2>
   <p>
      <a href="anotherLink">
        <img src="img.jpg">
      </a>
   </p>
   <p>My text is so awesome! I like ponies and cookies.</p>
</div>

以下jQuery片段:

$(".articleBoxContent").click(function() {
   window.location = $(this).find("h2").find("a").attr("href"); 
   return false;
});

我想要做的是,当我点击我的div时,如果div没有包含其他链接,它会将我发送到 H2 元素(myLink)中包含的链接在 p 元素中。

但我无法弄清楚如何对jQuery说明 H2 元素中的链接与 p 元素中的链接进行区分。有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

使用:

$(".articleBoxContent").click(function() {
    var el = $(this);

    if( el.find('p a[href]').length == 0 ){
        el.find('h2 a[href]').trigger('click');
    } // if
});

答案 1 :(得分:0)

p元素内进行检查:

$(".articleBoxContent").click(function() {
    if ($(this).find("p a").length) {
        //Found some anchor elements inside a "p" tag, do nada
        return false;
    } else
        //Didnt find an anchor inside the "p" tags - redirect
        window.location = $(this).find("h2").find("a").attr("href"); 
    }
});

答案 2 :(得分:0)

试一试:

$(".articleBoxContent").click(function(e) {
 e.preventDefault();
 e.stopPropagation();

 var $this = $(this);

 if(!$this.find('p a').length) {
   window.location = $this.find("h2 a").attr("href"); 
 }
 return false;

});