2010-02-20 126 views
2

这个问题让我有点疯狂。jquery遍历和表

我有这样的事情

<h3>Feeds 
    <span><a class="smallbutton create_feed" href="javascript:;"> 
    <strong>Create New</strong> 
    </a> 
    </span> 
    <span class="div_form_add_feed"> 
    <a class="smallbutton btn_save_feeds" href="javascript:;"> 
    <strong> Add </strong></a> 
    </span> 
    </h3> 
<table cellpadding=0 cellspacing=1 class="table"> 
<tr><td> 
<div class="get_feeds_news">test</div></td></tr></table> 

我想添加链接类“smallbutton btn_save_feeds”来代替格“get_feeds_news”别的东西。但我似乎无法在jQuery中使用$(this)来遍历它。

什么是从添加链接类“smallbutton btn_save_feeds”来改变div中的某些“get_feed_news”的正确方式?我尝试了以下,但没有工作。

$(this).closest('.get_feeds_news').html('hihi'); 

问题是因为它在表格内吗?

在此先感谢。

+0

@Scott - 我在我的答案中增加了另一个解决方案,但是如果将会有一定数量的这些元素,给元素一个ID会比遍历更好。如果情况并非如此,请参阅我更新的遍历。 – user113716 2010-02-20 22:24:11

回答

1

closest()因为将无法正常工作你正在搜索的元素不是按钮的祖先。

如果get_feeds_news是类唯一的发生,你可以简单地使用$('.get_feeds_news')

否则,你可以这样做:

$(this).closest('h3').next().find('.get_feeds_news')

jQuery有许多方法来遍历。这当然不是唯一的解决方法。如果你的布局改变了,将会有一些方法来完成你所需要的。

+0

啊..就是这样。我有它的2个实例。 – 2010-02-20 22:15:40

+0

我添加了第二个示例来抓取最近的h3,然后遍历其下一个兄弟,并找到您的get_feeds_news。 – user113716 2010-02-20 22:17:36

+0

辉煌!这样可行! – 2010-02-20 22:36:14

2

你缺少点(加上关闭div标签)

$(this).closest('.get_feeds_news').html('hihi'); 
+0

抱歉。我在例子中写错了。但在我的代码中,我有点,但仍然没有工作。 – 2010-02-20 22:11:51

+0

这不起作用。 – user113716 2010-02-20 22:16:42

0

尝试修复你的HTML,你没有关闭get_feeds_news格:

<table cellpadding=0 cellspacing=1 class="table"> 
<tr><td> 
<div class="get_feeds_news"></div></td></tr></table> 
+0

抱歉。我在例子中写错了。但在我的代码中,我已将它正确关闭。 – 2010-02-20 22:13:24

0

可以通过

$('.get_feed_news:eq(0)') 

(或1秒)

选择两个元件中的一个或,如果有2个链接smallbutton btn_save_feeds(每个.get_feed_news),可以使用:

$('.get_feed_news').eq($(this).index()) 

什么主要通过与索引呼叫者的索引来过滤.get_feed_news:]