Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2014, 16:18   #1
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию Узнать какой следующий тег.

Скажите пожалуйсте. К примеру я ориентируюсь на айди тега. Как узнать, что за тег будет после данного блока? div или span...
Predator199 вне форума Ответить с цитированием
Старый 18.03.2014, 17:06   #2
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

Наверное, $('#вашID').next(); или $('#вашID').children();
Покажите HTML код
ATL вне форума Ответить с цитированием
Старый 18.03.2014, 17:30   #3
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
Смущение

Цитата:
Сообщение от ATL Посмотреть сообщение
Наверное, $('#вашID').next(); или $('#вашID').children();
Покажите HTML код
<dl>
<span></span>
<span></span>
<span id='f'> я тут</span>
</dl>

Как узнать, что дальше закрытие тега </dl>. И нет никаких других блоков...
Predator199 вне форума Ответить с цитированием
Старый 18.03.2014, 17:44   #4
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

На нативном JS:
Код:
var span = document.getElementById('f');
var dl = span.parentNode;
console.log(dl.nextSibling);
Но надо учитывать, что оно может вернуть не тэг, а текст (если между dl и следующим тэгом будет текст). Для этого надо проверять свойство nodeType. Почитайте на эту тему.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 18.03.2014, 18:16   #5
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
На нативном JS:
Код:
var span = document.getElementById('f');
var dl = span.parentNode;
console.log(dl.nextSibling);
Но надо учитывать, что оно может вернуть не тэг, а текст (если между dl и следующим тэгом будет текст). Для этого надо проверять свойство nodeType. Почитайте на эту тему.
Все это настолько сложно, а ведь нужно лишь узнать. Дальше закрытие старшего блока или еще, что та есть.

Быть может проще буде узнать. Есть ли текст между дынным блоком и закрытием старшим.

Последний раз редактировалось Predator199; 18.03.2014 в 18:19.
Predator199 вне форума Ответить с цитированием
Старый 18.03.2014, 18:20   #6
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

Мир не идеален.
Можете выхватить parent().html() и парсить его. Тогда будете знать наверняка, но вряд ли Вам понравится этот вариант.
ATL вне форума Ответить с цитированием
Старый 18.03.2014, 18:35   #7
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию

Не совсем понимаю.

Код:
var span = $('#pagination_top > form > dl > dd > a:last').parentNode;
Так узнаем, что за родительский тег?
После того как мы узнали родительский тег.

Не понимаю, что узнаем за счет этого?
Код:
span.nextSibling
Должно быть как то так
Код:
$('#pagination_top > form > dl > dd > a:last').nextSibling
и ориентир на родительский. Как добавить ориентир родительского тега. Чтобы узнать, что между указанным блоком и закрытием родительского тега.

Так ошибку выдает.
Код:
$('#pagination_top > form > dl > dd > a:last').parentNode.nextSibling.html()

Последний раз редактировалось Predator199; 18.03.2014 в 18:37.
Predator199 вне форума Ответить с цитированием
Старый 18.03.2014, 18:38   #8
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Цитата:
Сообщение от Predator199 Посмотреть сообщение
Все это настолько сложно, а ведь нужно лишь узнать.
В чём тут вообще может возникнуть сложность? В каком месте?
Код:
var dl = document.getElementById('f').parentNode;
if(dl.nextSibling) {
    // что-то есть после dl
} else {
    // ничего нет
}
^-.-^ My GitHub

Последний раз редактировалось Fenex; 18.03.2014 в 18:41.
Fenex вне форума Ответить с цитированием
Старый 18.03.2014, 18:54   #9
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
В чём тут вообще может возникнуть сложность? В каком месте?
Код:
var dl = document.getElementById('f').parentNode;
if(dl.nextSibling) {
    // что-то есть после dl
} else {
    // ничего нет
}
Если так писать. То у меня ошибка
Код HTML:
Uncaught TypeError: Cannot read property 'nextSibling' of undefined
Predator199 вне форума Ответить с цитированием
Старый 18.03.2014, 18:54   #10
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

И о чём это говорит? У вас какая-то хрень. У элемента #f нет родителя )

Такое по-моему возможно только в одном случае - этот элемент был создан через document.createElement, но не вставлен в DOM.Хотя нет, тогда document.getElementById('f') возвратил бы null.

Без понятия что там происходит, где-то косяк чуть выше по коду.
^-.-^ My GitHub

Последний раз редактировалось Fenex; 18.03.2014 в 19:01.
Fenex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести из текстовой базы тег h1 в тег title ? jo22 PHP 9 18.07.2012 18:41
Парсинг XML (<тег></тег> переходит в <тег/>) hard-t Общие вопросы по Java, Java SE, Kotlin 4 29.06.2011 11:14
Узнать какой сегодня год Даниил_глазко Помощь студентам 6 14.11.2010 16:09
Узнать следующий узел в TTreeView RIO Общие вопросы Delphi 1 16.05.2010 02:59
Узнать какой запрос... HTL Софт 7 24.07.2009 13:35