2010-07-20 44 views
0
Event.observe(window, 'load', 
function() { 

    $$('a.tag_links').each(function(s) { 
     //alert(s.parent.parent.id); //How to get id of its parent to parent 
    }); 
} 
); 

我想获取父元素的id。如何使用原型获取锚标记的父ID?

结构是这样的。

<div class="home-page" id='entity-1'> 
    <div class="index-page-category"> 

    <a href="/entities/category/food" class="tag_links">food</a> 

</div> 

的结果应该是实体-1

回答

11

像这样:

$$('a.tag_links').each(function(s) { 
     var parentid = $(s).up('div').id; 
    }); 
+0

感谢你..它工作... – 2010-07-20 11:22:54

0

首先,你的HTML是不完整的。它看起来像:

<div class="home-page" id='entity-1'> 
    <div class="index-page-category"></div> 

    <a href="/entities/category/food" class="tag_links">food</a> 

</div> 

或者这样:

<div class="home-page" id='entity-1'> 
    <div class="index-page-category"> 

     <a href="/entities/category/food" class="tag_links">food</a> 

    </div> 
</div> 

无论哪种方式,你应该能够通过使用来实现这一目标:

$$('a.tag_links').each(function(s) { 
    var divId = $(s).previous('div.home-page').id; 
}); 

我想象你的理由迭代“a.tag_links”是你有一堆链接?基于这种情况,HTML结构是否始终如一(外部div将始终包含一类“主页”)?

+0

@rickp $(本).closest不是函数 这是我收到的错误。我在这里添加了$符号,即$$('a.tag_links') – 2010-07-20 11:18:30

+0

@nickp这是jQuery我相信 – robjmills 2010-07-20 11:21:29

+0

啊,对不起。你应该使用.previous('div.home-page').id; – rickp 2010-07-20 11:22:47