Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: jQuery удалить все что перед элементов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Arch-Web
Отправлено: 07 Июня, 2013 - 22:54:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 177
Дата рег-ции: Июль 2010  
Откуда: Ukraine::Kiev


Помог: 1 раз(а)




Добрый вечер.

есть такой html код

CODE (html):
скопировать код в буфер обмена
  1. <div id="content">
  2.  
  3. <div>My Page</div>
  4. Hello World.
  5. <div>Test 1</div>
  6. <div>Test 2</div>
  7.  
  8. <h2>test</h2>
  9. <ol>
  10.  <li>1</li>
  11.  <li>2</li>
  12. <ol>
  13.  
  14. </div>


как можно удалить всё до элемента "h2" (и текст тоже) ?

пробывал так (я понимаю что удаляю именно элементы, и в children нету простого текста) :
CODE (html):
скопировать код в буфер обмена
  1. $( "#content" ).children(":lt(3)").remove();

этот код удалит все элементы до элемента "h2" но "Hello World." останется

(Отредактировано автором: 08 Июня, 2013 - 13:23:46)

 
 Top
armancho7777777 Супермодератор
Отправлено: 08 Июня, 2013 - 08:11:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var content = $('#content'),
  3.     el = content.find('h2');
  4.        
  5. content.html(el);
  6.  
 
 Top
nerv
Отправлено: 08 Июня, 2013 - 13:30:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




вариант

CODE (javascript):
скопировать код в буфер обмена
  1. var box = $( '#content' );
  2. var col = box.find( 'h2, h2 ~ *' );
  3.      
  4. box.empty().append( col );


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
Arch-Web
Отправлено: 08 Июня, 2013 - 13:43:17
Post Id



Частый гость


Покинул форум
Сообщений всего: 177
Дата рег-ции: Июль 2010  
Откуда: Ukraine::Kiev


Помог: 1 раз(а)




Немножко не так.


Мне надо удалить все что перед <h2> а все что после тега <h2> оставить


чтобы результат был таким

CODE (html):
скопировать код в буфер обмена
  1. <div id="content">
  2. <h2>test</h2>
  3. <ol>
  4.  <li>1</li>
  5.  <li>2</li>
  6. <ol>
  7. </div>

(Отредактировано автором: 08 Июня, 2013 - 13:43:48)

 
 Top
armancho7777777 Супермодератор
Отправлено: 08 Июня, 2013 - 13:53:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var content = $('#content');
  3. content.html(content.html().replace(/[\s\S]+(?=<h2>)/gm, ''));
  4.  
 
 Top
Arch-Web
Отправлено: 08 Июня, 2013 - 15:41:46
Post Id



Частый гость


Покинул форум
Сообщений всего: 177
Дата рег-ции: Июль 2010  
Откуда: Ukraine::Kiev


Помог: 1 раз(а)




[quote=nerv][/quote]

такой еще вопрос, а если будет такой html

CODE (html):
скопировать код в буфер обмена
  1. <div id="content">
  2. <div>My Page</div>
  3. Hello World.
  4. <div>Test 1</div>
  5. <div>Test 2</div>
  6.  
  7. <h2>test</h2>
  8. Hello World 2. <a href="#go">Go my world</>
  9. <ol>
  10.  <li>1</li>
  11.  <li>2</li>
  12. <ol>
  13.  
  14. </div>


получается "Hello World 2." не скопирует(

как быть ?

я просто хз как в jQuery работать с текстом между блоками
CODE (html):
скопировать код в буфер обмена
  1. <div id="t1">
  2. <h2>Hello World.</h2>
  3. text text text.
  4. <p>my world</p>
  5. <div>
 
 Top
armancho7777777 Супермодератор
Отправлено: 08 Июня, 2013 - 21:39:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Arch-Web пишет:
как быть ?

Запустить две строчки кода, которые Вам выложили.
У меня слов нет...
 
 Top
nerv
Отправлено: 09 Июня, 2013 - 01:42:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




Arch-Web пишет:
я просто хз как в jQuery работать с текстом между блоками

преимущественно никак ) жуквери создавался для работы с элементами

лучше всего, чтобы
Arch-Web пишет:
текст между блоками

был заключен в тег параграфа )


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
armancho7777777 Супермодератор
Отправлено: 09 Июня, 2013 - 09:09:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




nerv пишет:
преимущественно никак

Да ну? )

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#content').contents().each(function() {
  3.         if($(this).nextAll('h2:eq(0)').length)
  4.         $(this).remove();
  5. });
  6.  


Метод обёртки contents() позволяет обойти узлы DOM всех типов.
В том числе текстовые узлы (nodeType 3).

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#content').contents().each(function() {
  3.        
  4.         if(this.nodeType == 1)
  5.         alert('HTML элемент.');
  6.        
  7.         if(this.nodeType == 3)
  8.         alert('Текстовый узел.');      
  9.  
  10. });
  11.  


Все доступные типы:
http://learn[dot]javascript[dot]ru/basic[dot][dot][dot]ies#тип-nodetype
 
 Top
nerv
Отправлено: 09 Июня, 2013 - 11:36:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




armancho7777777 пишет:
Да ну? )

на мой взгляд я выразился достаточно ясно:
nerv пишет:
преимущественно никак


armancho7777777 пишет:
Метод обёртки contents() позволяет...

я знаю про этот метод. Если бы он еще принимал аргументы, например, селектор, было бы вообще хорошо. А так приходится заниматься велосипедированием.

Впрочем, можно его использовать в связке с фильтром, но в данном случае не знаю, насколько это применимо http://api[dot]jquery[dot]com/contents/#example-0

Повторюсь, я бы сперва текст в параграфы обернул, а затем выборку делал.

(Отредактировано автором: 09 Июня, 2013 - 11:44:08)



-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
armancho7777777 Супермодератор
Отправлено: 09 Июня, 2013 - 14:53:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




nerv пишет:
я знаю про этот метод

Да кто бы сомневался ... ))
Всё, что было написано ниже первой строчки - адресовалось Arch-Webу.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB