2010-02-20 128 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:]