2011-09-02 13 views
0
<div id="foo"> 
    FOO 
</div> 

<div id="nextfoo"></div> 

如何從一個$('#foo').each()...功能選擇#nextfoo它,如果它不存在,然後創建它?選擇元素的特定元素後匹配ID,或創建它,如果不存在

+0

一個頁面上的元素的ID必須是唯一的,你應該不應該有'ID =「foo」的'多個元素。你應該使用'class =「foo」'和$('。foo')。each()'而不是 –

+0

你想在foo內尋找nextfoo嗎?如果它不存在你想在foo或foo之後放置nextfoo的位置? –

回答

0
var nextFoo= $('#nextfoo'); 
if (!nextFoo.length){ 
    nextFoo=$('<div id="nextfoo"/>').insertAfter('#foo'); 
} 

你的意思是這樣的嗎?

0

所有IDS首先應該是一個給定的網頁上是唯一的。所以沒有必要在$(「#foo」)上有each循環

您可以使用jQuery next方法獲取下一個元素(#nextfoo)。如果它不存在,則可以使用jQuery after方法插入它。試試這個

if(!$("#foo").next().is('#nextfoo')){ 
    $("#foo").after('div id="nextfoo" />'); 
} 
else{//It exists 
    var nextfoo = $("#foo").next(); 
} 
0

正如其他人所說,每個id應該是唯一的。所以,如果是這樣的結構,你正在尋找有反覆......

<div class="foo"></div> 
<div class="nextfoo"></div> 

...你是你的「的Foo」後丟失了一些「nextfoo」類,那麼你可以這樣做以下:

$('.foo').each(function() { 
    if (!$(this).next().hasClass('nextfoo')) { 
     $(this).after('<div id="nextfoo">nextfoo 2</div>'); 
    } 
}); 

的這個動作Here is a demo

相關問題