Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.10.2010, 17:07
Кандидат Javascript-наук
Отправить личное сообщение для hrundel Посмотреть профиль Найти все сообщения от hrundel
 
Регистрация: 01.08.2009
Сообщений: 102

jQuery и innerHTML()
Я пока не знаю достаточно хорошо фреймворк jQuery, но при знакомстве с ним появился такой вопрос.
Есть такой метод html(), который позволяет добавить на страницу новые теги. Вот пример:
Код:
$("h1#firstHeading").html('<p>hello </p>');
А это не является ли примитивной реализацией метода javascript innerHTML(), который является мягко говоря устаревающим и его использование не рекомендуется? Также при изучении мануалов нашёл функцию append(), позволяющую вставить произвольный текст в конец тега. Есть ли другие методы для корректного вставления тега (и текста) в страницу с использованием jQuery?
Если jQuery так отстойно делает вставку тегов, может его вообще не стоит применять в своих проектах?
Ответить с цитированием
  #2 (permalink)  
Старый 25.10.2010, 17:44
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Не знаю, где Вы начитались всего этого бреда, но:

1. jQuery — библиотека, а не фреймворк.
2. innerHTML — свойство, а не метод.
3. innerHTML — вполне нормальный способ добавлять элементы, зачастую более быстрый, чем DOM-методы. И конечный результат тот же самый.
Ответить с цитированием
  #3 (permalink)  
Старый 25.10.2010, 19:40
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от hrundel
А это не является ли примитивной реализацией метода javascript innerHTML(), который является мягко говоря устаревающим и его использование не рекомендуется?
О_о
innerHTML это, вообще говоря, не стандарт. Но есть во всех браузерах, и активно используется.
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2011, 19:07
Аватар для FreeStyler
Аспирант
Отправить личное сообщение для FreeStyler Посмотреть профиль Найти все сообщения от FreeStyler
 
Регистрация: 13.09.2009
Сообщений: 52

Нормальный innerHTML
Попутно вопрос как сделать на jQuery так
elem.innerHTML += '<p>test!</p>'

Последний раз редактировалось FreeStyler, 09.05.2012 в 15:34.
Ответить с цитированием
  #5 (permalink)  
Старый 21.03.2013, 13:04
Аватар для demon_666_902
Интересующийся
Отправить личное сообщение для demon_666_902 Посмотреть профиль Найти все сообщения от demon_666_902
 
Регистрация: 15.03.2013
Сообщений: 11

Сообщение от FreeStyler Посмотреть сообщение
Нормальный innerHTML
Попутно вопрос как сделать на jQuery так
elem.innerHTML += '<p>test!</p>'
var oldHtml = $(elem).html();
$(elem).html(oldHtml + addValue);
Ответить с цитированием
  #6 (permalink)  
Старый 21.03.2013, 14:06
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от demon_666_902
var oldHtml = $(elem).html();
$(elem).html(oldHtml + addValue);
Самый неоптимальный и потенциально опасный вариант.

Полагаю в jQuery используется что-то вроде этого:
$(elem)[0].insertAdjacentHTML('beforeend', html);
Ответить с цитированием
  #7 (permalink)  
Старый 21.03.2013, 14:16
Аспирант
Отправить личное сообщение для Keeper Посмотреть профиль Найти все сообщения от Keeper
 
Регистрация: 28.04.2011
Сообщений: 73

А про .after( content [, content ] ) или .insertAfter() все забыли?

http://api.jquery.com/after/
Ответить с цитированием
  #8 (permalink)  
Старый 21.03.2013, 14:38
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Так ведь after вставляет контент после элемента, а не в конце него. Тогда уж .append.
Сообщение от danik.js
Полагаю в jQuery используется что-то вроде этого:
Тут я имел ввиду внутренности jQuery. Ща глянул - там не используется этот метод вообще. Так что если нужна производительность - .append не годится.
Ответить с цитированием
  #9 (permalink)  
Старый 21.03.2013, 14:48
Аспирант
Отправить личное сообщение для Keeper Посмотреть профиль Найти все сообщения от Keeper
 
Регистрация: 28.04.2011
Сообщений: 73

Простите за невнимательность, да, append (appendTo)...
Ответить с цитированием
  #10 (permalink)  
Старый 25.04.2013, 14:35
Аватар для KudenkovR
Новичок на форуме
Отправить личное сообщение для KudenkovR Посмотреть профиль Найти все сообщения от KudenkovR
 
Регистрация: 25.04.2013
Сообщений: 2

Вопрос - если использовать innerHTML() вместо html(), получится ли повысить производительность или это лишние заморочки?
Я заметил, что при добавлении таблицы через html() в DOM добавляются элементы, которые я не прописывал в код - <tbody> и <colgroup>. Это значит, что метод html() просматривает добавляемую строку на валидность. Происходит ли то же самое при добавлении содержимого через innerHTML()?

Последний раз редактировалось KudenkovR, 25.04.2013 в 14:38.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамически загружаемая jQuery и jQuery-функции в одном файле 67bytes Общие вопросы Javascript 6 06.03.2013 09:01
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 22:29
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55
JQuery + FireFox NOOB jQuery 4 02.11.2009 18:16
Как правильно подгрузить jQuery Siton jQuery 4 15.06.2009 09:54