2012-01-24 1 views
2

Comment ajouter des éléments reçus après certains index, donc les deux premiers éléments ne sont pas effacés?Ajouter des éléments après la position d'index avec Jquery?

<div id ="wrapper"> 
    <div id="picker1"></div> 
    <div id="picker2"></div> 
    <div class="results"></div> // delete this and append result, 
           // which is let say 10 div's class result 
</div> 

cette

$('#wrapper').html(result), or $('#wrapper').clear().append(result) 

supprime deux premiers éléments aussi, est-il un moyen d'effacer tous les éléments avec index> 1 et apend après index> 1 ??

Répondre

1

Essayez cette

$('#wrapper') 
.find('div.results') 
.remove() 
.end() 
.append(result); 

Sinon, vous pouvez simplement utiliser replaceWith méthode jQuery.

$('div.results').replaceWith(result); 

Si vous souhaitez supprimer tous les éléments enfants dont l'index est> 1, utilisez-le.

$('#wrapper') 
.children(':gt(1)') 
.remove() 
.end() 
.append(result); 
1

En supposant que je comprends votre question.

Vous pouvez supprimer le divs with index > 1 en utilisant

$('#wrapper > div:gt(1)').remove(); 

Une fois que vous pouvez ajouter à l'aide

$('#wrapper').append("<div>Hello World</div>"); 
1

Vous pouvez utiliser le pseudo-sélecteur :gt:

var wrapper = $("#wrapper"); 
wrapper.find("> :gt(1)").remove(); // Remove indexes 2 onward 
wrapper.append(result); 

... mais le cas du HTML spécifique que vous avez cité, vous pourriez simplement supprimer la div avec th e classe "résultats".

var wrapper = $("#wrapper"); 
wrapper.children(".results").remove(); 
wrapper.append(result); 
1
$('#wrapper *:gt(1)').replaceWith('<div>foo</div>') 
// select everything in wrapper with an index >= 2 
// and replace it with <div>foo</div> 
1

Qu'en est-ce:

$('#wrapper') 
.append(result) 
.find('div.results') 
.remove() 
1

Qu'en est-ce:

$('#wrapper .results').after(result).remove(); 
Questions connexes