Как добавить в существующую ?
У меня есть код, который выглядит так:
Я хотел бы использовать jQuery, чтобы добавить в список следующее:
Message Center
Я попробовал это:
- jqGrid динамически разрешает идентификатор пейджинга сетки?
- Получить элемент -moz-transform: вращать значение в jQuery
- Опция $ .ajax context
- возможно ли удалить html-комментарий из dom с помощью jquery
- Ограничение флажка
$("#content ul li:last").append("Message Center ");
Но это добавляет новый li
внутри последнего li
(непосредственно перед закрывающим тегом), а не после него. Каков наилучший способ добавить этот li
?
- Ошибка возврата значения JSON
- Rails 3 UJS - controller дважды вызывается вызовом link_to: remote
- Почему сценарий Ajax не работает на сервере IIS 7.5 Win 2008 R2?
- jQuery .load () не работает в IE, но отлично работает в Firefox, Chrome и Safari
- Загрузка файла Django JQuery Ajax
- Количество символов в текстовом поле
- jQuery Удаление определенного текста из элемента
- Используйте раскрывающееся меню Bootstrap 3 в качестве контекстного меню
Это сделало бы это:
$("#header ul").append('Message Center ');
Две вещи:
- Вы можете просто добавить
- Вам нужно использовать противоположные типы котировок, чем то, что вы используете в своем HTML. Поэтому, поскольку вы используете двойные кавычки в своих атрибутах, окружите код одинарными кавычками.
Вы можете сделать это также более «объектным способом» и по-прежнему легко читать:
$('#content ul').append( $('').append( $('').attr('href','https://stackoverflow.com/user/messages').append( $('').attr('class', 'tab').append("Message center") )));
Тогда вам не нужно сражаться с котировками, но нужно следить за фигурными скобками 🙂
Как насчет использования «после» вместо «добавить».
$("#content ul li:last").after('Message Center ');
“.after ()” может вставлять содержимое, заданное параметром, после каждого элемента в наборе согласованных элементов.
Если вы просто добавляете текст в этот li
, вы можете использовать:
$("#ul").append($("").text("Some Text."));
jQuery поставляется со следующими параметрами, которые могут удовлетворить ваши потребности в этом случае:
append
используется для добавления элемента в конец родительского div
указанного в селекторе:
$('ul.tabs').append('An element ');
prepend
используется для добавления элемента в начало / начало родительского div
указанного в селекторе:
$('ul.tabs').prepend('An element ');
insertAfter
позволяет вставить элемент вашего выбора после элемента, который вы указали. Созданный вами элемент будет помещен в DOM после указанного тега закрытия селектора:
$('An element ').insertAfter('ul.tabs>li:last'); will result in: Edit An element
insertBefore
сделает противоположное вышеизложенному:
$('An element ').insertBefore('ul.tabs>li:last'); will result in: An element Edit
Вы должны добавить в контейнер, а не последний элемент:
$("#content ul").append('Message Center ');
Функция append () должна была, вероятно, быть вызвана add () в jQuery, потому что иногда это путает людей. Вы могли бы подумать, что он добавляет что-то после данного элемента, в то время как он фактически добавляет его в элемент.
Вместо
$("#header ul li:last")
пытаться
$("#header ul")
$("#content ul").append('Message Center ');
$("#content ul").append('Message Center ');
Вот несколько отзывов о читаемости кода (бесстыдная плагин для блога). http://coderob.wordpress.com/2012/02/02/code-readability
Рассмотрим разделение объявления ваших новых элементов от действия добавления их в ваш UL .. Он будет выглядеть примерно так:
var tabSpan = $('', { html: 'Message Center' }); var messageCenterAnchor = $('', { href='https://stackoverflow.com/user/messages', html: tabSpan }); var newListItem = $('', { html: messageCenterAnchor, "id": "myIDGoesHere" }); // NOTE: you have to put quotes around "id" for IE.. $("content ul").append(newListItem);
Счастливое кодирование 🙂
Это еще один
$("#header ul li").last().html(' Menu 5 ');
легко
// Creating and adding an element to the page at the same time. $( "ul" ).append( "list item " );
Это самый короткий способ сделать это
list.push($('', {text: blocks[i] })); $('ul').append(list);
Где блоки в массиве. и вам нужно пройти через массив.