Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.08.2016, 14:52
Новичок на форуме
Отправить личное сообщение для SergeyAndSmart Посмотреть профиль Найти все сообщения от SergeyAndSmart
 
Регистрация: 30.07.2016
Сообщений: 8

Добавление элемента на чужой сайт
Добрый день. Мне необходимо добавить пункт в меню сайта. Код меню приведен на скрине.
Я добавляю элемент так:
var list = document.getElementsByClassname('topbar-nav-main dt-compact_topbar');
var li = document.createElement('LI');
li.innerHTML = 'Новый элемент списка';
list.appendChild(li);

Но ничего не работает. Помогите пожалуйста.

Последний раз редактировалось SergeyAndSmart, 24.08.2016 в 15:01.
Ответить с цитированием
  #2 (permalink)  
Старый 24.08.2016, 15:07
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

По-моему проблема в древнем getElementsByClassname

var ul = document.querySelector('ul.topbar-nav-main');
if(ul) {
   var li = ul.appendChild(document.createElement('LI'));
   li.textContent='Новый пункт меню';
}
Ответить с цитированием
  #3 (permalink)  
Старый 24.08.2016, 15:13
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Нет, там все равно будет много хтмля, так что лучше сразу его весь и засунуть

var
li='<li id='tvoe-id'><a href="your-link">Your Link</a></li>',
ul = document.querySelector('ul.topbar-nav-main');
if(ul) ul.insertAdjacentHTML('beforeend',li);


https://developer.mozilla.org/en-US/...rtAdjacentHTML
Ответить с цитированием
  #4 (permalink)  
Старый 24.08.2016, 15:13
Новичок на форуме
Отправить личное сообщение для SergeyAndSmart Посмотреть профиль Найти все сообщения от SergeyAndSmart
 
Регистрация: 30.07.2016
Сообщений: 8

Сообщение от warren buffet Посмотреть сообщение
По-моему проблема в древнем getElementsByClassname

var ul = document.querySelector('ul.topbar-nav-main');
if(ul) {
   var li = ul.appendChild(document.createElement('LI'));
   li.textContent='Новый пункт меню';
}
Спасибо, все работает. У меня тоже получилось, надо было указать [0] в конце. Ваш вариант мне больше нравится.
var list = document.getElementsByClassName("topbar-nav-main dt-compact_topbar")[0];
Ответить с цитированием
  #5 (permalink)  
Старый 24.08.2016, 15:14
Новичок на форуме
Отправить личное сообщение для SergeyAndSmart Посмотреть профиль Найти все сообщения от SergeyAndSmart
 
Регистрация: 30.07.2016
Сообщений: 8

Сообщение от warren buffet Посмотреть сообщение
Нет, там все равно будет много хтмля, так что лучше сразу его весь и засунуть

var
li='<li id='tvoe-id'><a href="your-link">Your Link</a></li>',
ul = document.querySelector('ul.topbar-nav-main');
if(ul) ul.insertAdjacentHTML('beforeend',li);


https://developer.mozilla.org/en-US/...rtAdjacentHTML
А как в определенное место вставить?
Ответить с цитированием
  #6 (permalink)  
Старый 24.08.2016, 15:15
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

SergeyAndSmart, а ссылку я специально дал предвосхищая твой вопрос. )))
Ответить с цитированием
  #7 (permalink)  
Старый 24.08.2016, 15:16
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

А, в смысле после какого-то пункта? Это еще другой метод. https://developer.mozilla.org/en-US/...e/insertBefore
Ответить с цитированием
  #8 (permalink)  
Старый 24.08.2016, 15:17
Новичок на форуме
Отправить личное сообщение для SergeyAndSmart Посмотреть профиль Найти все сообщения от SergeyAndSmart
 
Регистрация: 30.07.2016
Сообщений: 8

Сообщение от warren buffet Посмотреть сообщение
А, в смысле после какого-то пункта? Это еще другой метод. https://developer.mozilla.org/en-US/...e/insertBefore
Огромнейшее спасибо, буду изучать!
Ответить с цитированием
  #9 (permalink)  
Старый 24.08.2016, 16:53
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,686

Сообщение от warren buffet Посмотреть сообщение
древнем getElementsByClassname
А что есть "современный" аналог?
Ответить с цитированием
  #10 (permalink)  
Старый 25.08.2016, 08:51
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Есть.

ЗЫ проблему кстати назовите уже.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить на чужой сайт свой js-код или css стили? Hurray Общие вопросы Javascript 1 08.06.2015 00:00
Блокирование интерфейса. Добавление нового элемента vychmat Элементы интерфейса 5 20.03.2014 13:04
Ext.tree, динам. добавление элемента Margarita ExtJS 0 24.12.2012 13:00
добавление дочернего элемента stalker77 Общие вопросы Javascript 5 31.08.2011 20:58
Добавление элемента и работа с ним nvbn Events/DOM/Window 13 07.07.2008 18:07