Javascript.RU

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

Как узнать есть ли элемент в dom?
мне нужно узнать присутствует ли элемент с id redakt_form на странице и в зависимости от этого выполнить действие
напишите строчку плиз, я гуглил и не нагуглил, забыл как делать (

я сделал вот так if($("#redakt_form")=false){} но чето не работает

Последний раз редактировалось FRIE, 08.06.2011 в 20:07.
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2011, 20:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Как вариант

<p id='redakt_form'></p>
<script>
if (document.getElementById('redakt_form')) alert('Элемент существует')
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2011, 21:04
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от FRIE
чето не работает
Во-первых, оператор сравнения - это == или ===, а не =. А во-вторых, с чего ты решил, что jQuery возвращает false???
Я не знаток jQuery, так что предложу:
if( $("#redakt_form").length === 0 ){}
Ответить с цитированием
  #4 (permalink)  
Старый 09.06.2011, 13:15
Профессор
Отправить личное сообщение для FRIE Посмотреть профиль Найти все сообщения от FRIE
 
Регистрация: 25.02.2010
Сообщений: 218

Спасибо парни! тупикую просто
Ответить с цитированием
  #5 (permalink)  
Старый 09.06.2011, 15:06
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Немного усложню задачу, т. к. сам недавно столкнулся: нужно узнать есть ли элемент в document, при этом у элемента может и не быть id (устанавливать самому нельзя), но ссылка на него уже есть в переменной. Ищется максимально быстрый способ. Я пока пришел к такому:
if (elem.offsetParent || elem == document.documentElement || elem == document.body) {

}

, но кажется мне, что можно еще проще.
Ответить с цитированием
  #6 (permalink)  
Старый 09.06.2011, 15:24
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Может:
if(element.parentNode === null) alert("Элемент не в ДОМе");
???
Ответить с цитированием
  #7 (permalink)  
Старый 09.06.2011, 18:04
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

Самое интересное, что это не проходит)

Пример я удалил кусок dom дерева и если там есть элемент, который я проверяют на "в dom'e" то он вернет родителя не смотря ни на что.

Про id, почему нельзя добавлять? Пишите функцию, которая генерирует уникальные id и вставляете их, также для защиты от css можно добавлять впереди ":".

function elementInDOM( elem ) {
  var elInDOM;
  if ( elem.id ) {
    elInDOM = document.getElementById( elem.id );
  } else {
     elem.id = ":" + uniqId();
     elInDOM = document.getElementById( elem.id );
     elem.removeAttribute("id");
  }
  return !!elInDOM;
}
Ответить с цитированием
  #8 (permalink)  
Старый 10.06.2011, 02:01
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Sweet
Может:
if(element.parentNode === null) alert("Элемент не в ДОМе");
легко обмануть, хотя в некоторых случаях сгодится.

Сообщение от nikita.mmf
Про id, почему нельзя добавлять? Пишите функцию, которая генерирует уникальные id и вставляете их, также для защиты от css можно добавлять впереди ":"
1. может приводить к reflow.
2. легко обмануть, можно просто создать элемент с id который уже существует в dom (не тот случай когда uniqId() работает, а когда вручную существующий id создается).
3. в десятки раз медленней.

Последний раз редактировалось Riim, 10.06.2011 в 02:06.
Ответить с цитированием
  #9 (permalink)  
Старый 10.06.2011, 12:30
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Цитата:
нужно узнать есть ли элемент в document
Я наверно что-то не так понял, но можно же так:

elem.ownerDocument == document;
Ответить с цитированием
  #10 (permalink)  
Старый 10.06.2011, 12:44
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

Сообщение от Riim Посмотреть сообщение
1. может приводить к reflow.
Про это совершенно не подумал, тут вы аюсолютно правы(просто у меня была такая задача, но у меня у всех элементов были 'id')
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить второй дочерний элемент, или второй смежный libinstyle Events/DOM/Window 4 30.06.2010 20:41
Навигация внутри DOM. Как это сделать нормально? master_alf Events/DOM/Window 10 09.04.2010 10:18
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Как узнать о том, что флэш уже загрузился. Snipe Общие вопросы Javascript 4 29.01.2009 11:21
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11