JQuery: как получить HTML, исключая Div в нем? - PullRequest
0 голосов
/ 03 февраля 2011

это мой html

loaded-data  = "
<div id='content'>
<div id='1'></div>
<div id='2'></div>
<div id='3'></div>
</div>"


var myHtml = $(data).find('#content').html(); // i get all 3 divs

что если я хочу исключить div 3?

Ответы [ 4 ]

0 голосов
/ 20 февраля 2012

может быть? var myHtml = $ (data) .contents (). find ("# content"). not ("# 3"). html ();

0 голосов
/ 03 февраля 2011

Хорошее решение, когда вы не знаете идентификаторы внутренних элементов div - всегда будет работать.Вы можете дополнительно указать класс в методе children, если он включен.

$('#content').children('div').slice(0, 2);
0 голосов
/ 03 февраля 2011

Ваш вопрос, кажется, подразумевает, что вы говорите о String.Если это так, выберите children() (документы) и remove() (документы) тот, который вам не нужен из соответствующего набора путем ссылки на последний с помощью slice() (документы) метод.

Затем используйте метод end() (документы) , чтобы вернуться к начальному элементу.

Пример: http://jsfiddle.net/vhsA5/

var myHtml = $(data).children().slice(-1).remove().end().end().html();

РЕДАКТИРОВАТЬ: Я хотел бы заметить, что если размещенная вами строка HTML является меньшей частью большого фрагмента HTML,Скорее всего, вам нужно будет добавить .find('#content') обратно до .children().

0 голосов
/ 03 февраля 2011

Во-первых, я не знаю, что это хорошая идея, чтобы начать ваши идентификаторы с номерами. Это может быть пережитком моих ранних дней программирования на VB6, но я всегда делаю id как что-то вроде item1 и item2. При этом, если вы хотите выбрать первые два div, попробуйте

$('#content #item1, #content #item2')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...