Таким образом, простое решение здесь было бы разбить его на части.
Каждый раз, когда вы делаете утверждение, оно может возвращать вновь созданный элемент.
Давайте посмотрим на ваш пример -
<li data-target="c1.html"><span>I. </span><span>Het tijdperk der goden</span></li>
Для начала возьмем базовый объект - скажем, например, элемент <ul>
, к которому вы хотите добавить -
Это предполагает элемент <ul>
например, <ul id="someList"></ul>
в разметке HTML.
var myList = $("#someList");
и добавление к нему другого нового <li>
элемента, возвращающего его новому объекту
var newElement = myList.append('<li data-target="c1.html"></li>');
Отлично!мы зашли так далеко - теперь мы добавляем <span>
var firstSpan = newElement.append('<span></span>').text('I. ');
var secondSpan = newElement.append('<span></span>').text('Het tijdperk der goden');
Я сделал это очень широко - нет необходимости выполнять каждую операцию в отдельной команде.В jQuery есть фантастическая функция под названием chaining
.
Что означает связывание (как следует из названия), так это то, что вы можете связывать функции вместе.Я уже привел пример в приведенном выше коде
var firstSpan = newElement.append('<span></span>').text('I. ')
Как видите, я добавляю элемент <span>
и сразу после вызова функции text()
.Это возможно, потому что большинство, если не все встроенные функции jQuery (действительно любые хорошо построенные плагины) будут возвращать сам объект при его выходе.
Например -
var coldBeer = new Object();
coldBeer.drink = function(){
// gulp...gulp...
console.log('gulp...gulp...')
return this;
}
coldBeer.refill = function(){
// drunk...drunk...
console.log('drunk...drunk...')
return this;
}
Позволит нам сделать это -
coldBeer.drink().refill().drink().refill().drink();
, потому что каждая функция (* hiccup *) вернетсяеще одно холодное пиво!
Ура!
http://howthewestisfound.com/images/Misc/beer_pour.gif