Javascript Leerzeile nach pTag einfügen?
Hi,
ich möchte nach einem pTag, wenn das nächste GeschwisterElement nicht auch ein pTag ist, eine Leerzeile einfügen. Leider schein bei der If Abfrage iwas nicht zu stimmen. Er führt den Befehl immer aus obwohl das nächste Element ein pTag ist. Sieht jemand meinen Fehler?
function leerzeile() {
var plength = document.getElementsByTagName("p").length;
for (let i = 0; i < plength; i++) {
var p = document.getElementsByTagName("p")[i];
p.classList.add("pclass");
}
var pclass = document.getElementsByClassName("pclass").length;
for (let i = 0; i < pclass; i++) {
var ptag = document.createElement("p");
ptag.innerHTML = " ";
var vorhandenesObjekt = document.getElementsByClassName("pclass")[i];
var nextElement = vorhandenesObjekt.nextSibling;
if (nextElement.tagName != "p" ) {
vorhandenesObjekt.appendChild(ptag);
vorhandenesObjekt.style.margin = "0";
}
}
}
leerzeile();
1 Antwort
Das "P" muss groß.
if (nextElement.tagName != "P") {
Außerdem solltest du nextElementSibling anstatt nextSibling verwenden. Ansonsten werden die Leerzeichen und Newlines im HTML-Code zwischen deinen Tags als Elemente behandelt, und die haben natürlich keinen <p>-Tag, weshalb dein If-Block dann immer ausgeführt werden würde.