2010-05-11 10 views
5

mam coś takiego: ...jQuery: dodawanie html po grupie div

<div id="d120" >content</div> 
<div id="d123" >content</div> 
<div id="d112" >content</div> 
<div id="d145" >content</div> 
<div id="d134" >content</div> 
//Insert here hello world 

<div id="bla" >asd</div> 
<div id="footer" >asd</div> 

ktoś wie jak wstawić html po wszystkich div id, które jak d + numer

Odpowiedz

3

Jeśli format nie ma nic pomiędzy tymi DIV i #bla jak Twój przykład, tutaj jest bezpieczniejsze podejście używając .before() (od div[id^=d] pasowałby <div id="doodlesticks"> również).

$("#bla").before("<b>Hi There</b>"); 

Aktualizacja: Ponieważ stwierdzono, że jest możliwe, aby dać im lekcje, zrobiłbym to, więc dać zawartość div do class="content" i używać tego jQuery:

$(".content:last").after("<b>Hi There</b>"); 
+0

no bla było tylko po to, aby pokazać, że jest tam coś jeszcze, ale nie wiem, co będzie, chociaż jest to dobry pomysł, aby – Omu

+1

@Omu - możliwe, aby te treści divs klasy? Dopasowanie samego początku "d" nie jest wcale takie bezpieczne, z czym jeszcze musisz pracować? –

+0

tak, możliwe jest nadanie im klasy – Omu

0

dodaj kolejny element div z identyfikatorem, a następnie zmień kod HTML tego elementu $ ("# id"). html ("html");

, chyba że złamie układ strony?

0

Spróbuj tego:

$(function(){ 
    $('div[id^="d"]:last').after('<div>Hello World</div>'); 
}); 

Uwaga: Jak sugeruje Nick Craver, byłoby to znaleziono żadnych div którego id rozpoczyna się d ale myślę, że to, co masz do uciekania się do, jak na swoje znaczniki HTML.

1
$("div[id^=d]:last").after("some html"); 

czyli

$("some html").insertAfter("div[id^=d]:last"); 
+0

Czy naprawdę sądzisz, że to bezpieczne podejście? – user113716

+0

tak naprawdę nie musi być przynajmniej kilka znaków na początku identyfikatorów, aby wyeliminować możliwość wystąpienia * naturalnej * katastrofy (inne elementy div z id zaczynają się od d). Sądzę, że zamiast tego należy im przypisać wspólną klasę. – karim79

3

To będzie bezpiecznie testuj dla elementów, których id kończy się liczbą, zamiast dowolnego identyfikatora zaczynającego się na "d".

$('div[id]').filter(function() { 
    return /\d+$/.test($(this).attr('id')); 
}).last().after(...my html...); 
+0

+1: To wygląda na bardziej ogólne rozwiązanie, zgodnie ze znacznikami HTML i wymaganiami OP. – Sarfraz