J'ai un élément HTML (disons un div
ision) qui contient un titres ensemble (h2
) et paragraphes (p
) avec d'autres éléments à l'intérieur (quelques liens par exemple, a
).Copie la moitié d'un enfant HTML tableau nœuds
Mon but est de couper mon élément HTML en 2 éléments de même taille.
: paragraphes Contraint, les titres et le bloc ne doit pas être coupé
Mon idée asbout cela devait parcourir l'intérieur de la liste des nœuds enfants et copie childNodes
de chaque paragraphe.
Chaque fois que je copie un paragraphe, je calcule la taille afin de savoir si j'ai atteint la demi-taille de la division.
Voici un code pour l'expliquer:
var elm = document.getElementById('article_colonnes'); // I want to cut this into 2 parts
var paragraphesNumber = paragraphes.length;
var halfSize = elm.innerHTML.length/2 ;
var col1 = document.getElementById('col1');
var col2 = document.getElementById('col2');
var i=0;
do {
var node = createNodeFromParagraphe(paragraphes[i]);
if(node) {
col1.appendChild(node);
// update the size of the 1st column by updating inner HTML
col1String = col1String + paragraphes[i].innerHTML;
}
i++;
// compute the size of the 1st column
col1Size = col1String.length;
}
while(col1Size < halfSize || i < paragraphesNumber) ;
Et je fais la même chose pour la 2ème colonne.
Merci pour votre aide.
Peut-être que vous pourriez expliquer quel est le but de faire cela, alors nous pourrions vous aider davantage? –
Je suppose qu'il veut une disposition automatique de deux colonnes. Je pense qu'une solution CSS pure avec des éléments flottants pourrait faire exactement cela, sans tous les tracas JavaScript. – Tomalak
encore mieux, il pourrait simplement utiliser des dispositions de plusieurs colonnes, pris en charge dans tous les principaux navigateurs sauf IE. Les utilisateurs d'IE peuvent tout simplement aspirer. – Breton