Показать сообщение отдельно
  #6 (permalink)  
Старый 04.02.2011, 11:36
Интересующийся
Отправить личное сообщение для traa Посмотреть профиль Найти все сообщения от traa
 
Регистрация: 03.02.2011
Сообщений: 27

как один из вариантов написал следующий костыль.
if ((st.firstChild && st.firstChild.nodeType==3 && $.trim(st.firstChild.nodeValue)!='' && st.childNodes.length==1) || 
 st.childNodes.length>1 ||
 	 (st.firstChild && st.firstChild.nodeType==1))


- Проверяем на наличие вообще firstChild
- Тип ноды у пробелов будет всегда равен текстовой ноде, т.е. троечке, что разумно вроде как.
- Если мы знаем тип нода, то мы можем обратиться к его свойству nodeValue
- чтобы в наше условие не попадали выделения у которых в начале стоит пробела, а затем идут другие ноды, ограничиваем область вхождения только одноНодовым выделением
- альтернативное условие - если несколько нодов, то текст нам подходит, т.к. пробелы разбиваться на несколько нодов явно не будут (правда, будут пробелы с тэгами, в которых пустоты или пробелы. да)
- альтернативное условие - при типе чайлдНода равного тэгу - всегда пропускаем, думаю, там нет нужды фильтровать.

Последний раз редактировалось traa, 04.02.2011 в 13:27.
Ответить с цитированием