Давайте начнем с объяснения того, что значит установить элемент b
как родственный элемент a
(здесь представлен a.after(b)
).
Вкратце это означает размещение элемента b
в parent
элементе элемента a
в позиции рядом с (после) a
элементом.
Итак, на данный момент мы видим, что основная проблема с вашим кодом состоит в том, что он не предоставляет никакой ссылки на родительский элемент , в который должен быть помещен брат или сестра .
Простым решением было бы
- создать
Element
или Document
, представляющий родителя,
- назначить элемент
a
как дочерний элемент родительского элемента
- (только после 1. 2.) присвойте элемент
b
в качестве родственного элемента a
,
Другими словами что-то вроде:
Element parent = new Element("body");
Element a = ...
parent.appendChild(first); // create parent-child relation
Element b = ...
a.after(b); // now `a` knows about its parent element so it knows
// to which element append `b`
Вторая проблема заключается в том, что вы неправильно используете new Element(...)
в
new Element("p style=\"margin-top:5px\">This is description</p");
Цель этого конструктора не в создании и настройке , а только в создании HTML-элемента. Настройка этого элемента должна быть сделана позже.
Другими словами, не используйте new Element("<tag with='attributes'>and other elements</tag>")
, а new Element("tagName")
, и настройте этот элемент с помощью специальных методов, таких как:
Element readyDesc = new Element("p");//use only name of tag, without < and >
System.out.println(readyDesc); //raw form: <p></p>
//customize tag
readyDesc.attr("style", "margin-top:5px");
readyDesc.text("This is description");
System.out.println(readyDesc);//customized: <p style="margin-top:5px">This is description</p>