0

div45452314234如果我点击“在 Facebook 上分享”如何获得

<div id="div45452314234" class="Display">Display</div>
    <div class="Actions">
        <span>
            <div id="count">0</div>
            <a>Like</a>
        </span> 
        <span class="Author">Author</span>
        <span class="Recency">Recency</span> |
        <span><a class="ShareFB"  href="">Share on Facebook</a></span> |
        <span><a href="">Share on Twitter</a></span> |
    </div>

见鬼:-

http://jsfiddle.net/WLS5T/

4

3 回答 3

2

这将为您提供所需的...

$(function() {
    $(".ShareFB").on("click", function() {
        var $div = $(this).closest(".Actions").prev();
        alert($div.attr('id'));
    });
});

closest()将解析 DOM 树,直到找到具有该类的元素的第一个实例,Actions然后prev()将选择前一个元素。 $div然后将是一个 jQuery 对象,您可以随意使用它。

编辑

我已经更新了你的小提琴......

http://jsfiddle.net/WLS5T/1/

一个问题是对 ShareFB 的调用导致脚本的其余部分停止运行,我也修复了我之前不正确的代码。

于 2012-11-07T10:46:04.317 回答
-1

尝试这个:

$('.ShareFB').click(function(){
        alert($(this).parent().parent().prev().attr("id"));
    });
于 2012-11-07T10:52:28.630 回答
-2

您需要使用递归。

function getTargetParent(node){
if($(node).attr('class')=='Actions'){
    alert($(node).prev().attr('id'));
}
 getTargetParent($(node).parent());
return;
}

 var targnode=$('.Actions').find('.ShareFB');//replace with $(this) in real scenario
 getTargetParent(targnode);

看到这个jsfiddle。http://jsfiddle.net/harendra/tAssd/

于 2012-11-07T11:03:19.877 回答