Как найти все до и после специального тега или идентификатора - PullRequest
0 голосов
/ 17 апреля 2011

Я хочу удалить все до и после form. Я новичок в jquery и английском.

<h1>hello</h1>
<span>world</span>
<form id=f>
<input name=g>
<input type=submit>
</form>
<div>footer</div>
<p>more</p>

Ответы [ 4 ]

2 голосов
/ 17 апреля 2011

Я бы выбрал:

var el = $('#f').detach();
$('body').empty().append(el);

, то есть вытащил биты из DOM, которые вы хотите сохранить, и затем полностью замените текущее тело этими элементами.Это обеспечит его работоспособность даже в том случае, если нужные элементы вложены в длинное дерево DOM.

См. http://jsfiddle.net/rwWp9/1/

1 голос
/ 17 апреля 2011

Вы можете использовать .nextAll() и .prevAll(), чтобы выбрать все после и перед элементом.

$("form#f").nextAll().remove();
$("form#f").prevAll().remove();

Пример на jsfiddle вашей разметки.

0 голосов
/ 17 апреля 2011

Вы должны использовать методы nextAll () и prevAll (), чтобы удалить всех братьев и сестер.Однако, чтобы дать вам альтернативную идею, взгляните на этот код.Обратите внимание, что это не решение проблемы.

$(document).ready(function(){
$("body").children().each(function(i){
   if($(this).attr("id") != "f"){
        $(this).remove();
    }
});
});
0 голосов
/ 17 апреля 2011

Проверьте функции jQuery not () , prevUntil () и nextUntil () . Также могут быть полезны next () , prev () и parentUntil () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...