2011-09-30 43 views
-2

我最困難的時候試圖引用下一個包含特定字符串的ID的元素。下一個出現的東西,在DOM樹下

基本上,我有一個鏈接,我需要show() NEXT div充當編輯的容器。

<div> 
<a href="#" id="link-1">Link</a> // go from here 
</div> 

<div id="form-container-1" class="hidden"> // to here 
<form> 
... 
</form> 

必須注意的:我不只是針對一個id ...的形式容器id中的「1」的宗旨,是因爲有好幾個。我正在使用「包含」選擇器id*="form-container"

+0

請嘗試下一步()和下一步的子節點(...)等待它...孩子們。訪問jQuery網站獲取文檔和示例。 – adeneo

+0

爲什麼你沒有瀏覽jQuery文檔? –

+0

ID是唯一的,所以如果你知道ID,你可以使用'$('#id')'... – ThiefMaster

回答

1

的所有元素:

$('a').click(function() { 
    formId = $(this).attr('id').split('-')[1]; 
    $('#form-container-'+formId).show(); 
}); 

或者,如果您想在每個鏈接之後找到下一個表單:

$('a').click(function() { 
    $(this).next('form').show(); 
}); 

這兩種情況下,建議在鏈接中添加一個唯一的類,以顯示錶單並更新選擇器。

+0

這更像它。非常多我在做什麼......但是,這並不是我希望的方式。可能是「身份證」的參考? – dcolumbus

+0

我已經更新了我的答案,使用.attr(),給出一個去。 – digout

+0

'attr'是什麼失蹤。我剛回來說些什麼。此外,在這種情況下,索引從1開始...所以它會是2。 – dcolumbus

1

如果它直接進行當前項目,那麼將工作。

然後嘗試使用parent()next()的組合。這樣您就可以參考包含div,然後找到下一個div

工作例如:http://jsfiddle.net/PdatP/

的jQuery:

$('a').click(function(){ 
    $(this).parent().next().show(); 
}); 
+0

以上就是它的佈局......而'next'不起作用。 'this'是'a'鏈接,我需要能夠引用下一個div,以便我可以取消隱藏它。 – dcolumbus

1

這將讓下一個兄弟和顯示元件

$('#link-1').next().show(); 

如果不完全的下一個元素,你可以使用siblings方法喜歡;

$('#link-1').siblings('#form-container-1').show(); 

或者,如果你想顯示如果要動態地找到正確的形式展現根據id事遂所願包含form-container在它們的ID

0
$("#link-1").parent().next().show(); 
相關問題