Как выбрать все содержание между двумя тегами в jQuery

Чтобы, по крайней мере, начать «сворачивать голову», вот подход, который можно использовать, предполагая, что вы используете некоторый кодовый «язык» для доступа к базе данных SQL Server. Вот некоторый простой для понимания классический ASP-код для вычисления переменной FractionToUse, который затем можно было бы использовать для умножения в операторе SQL:

FirstDayOfCurMonthDate = DateSerial(Year(Date()), Month(Date()), 1)
CurrentDate = Date()
FinalDayOfCurMonthDate = DateSerial(Year(Date()), Month(Date()) + 1, 1 - 1)

DaysInCurMonthRemaining = DateDiff("D", CurrentDate, FinalDayOfCurMonthDate) + 1
DaysInCurMonthTotal = DateDiff("D", FirstDayOfCurMonthDate, FinalDayOfCurMonthDate) + 1

FractionToUse = DaysInCurMonthRemaining / DaysInCurMonthTotal
57
задан Peter Mortensen 21 July 2014 в 07:18
поделиться

5 ответов

Два метода в особенности были бы очень полезным решением этой проблемы: .nextUntil , и .andSelf . Первое захватит все одноуровневые элементы после Вашего селектора, и последний смешает в том, что подобрано Вашим селектором также, дав Вам один объект jQuery, который включает их всех:

$("#heading2")
    .nextUntil("#heading3").andSelf()
        .css("background", "red");

Это приводит к следующему:

enter image description here

71
ответ дан Sampson 7 November 2019 в 06:08
поделиться

Да, Вы правы. Это только избежит желаемого селектора. Возможно, это должно быть более подробно:

$(firstSelector).nextAll().not(secondSelector).not($(secondSelector).nextAll()).text()
2
ответ дан Peter Mortensen 7 November 2019 в 06:08
поделиться

Возможно, с

$(selectorForFirstHeading).nextAll().not(selectorForLastHeading).text()

, Почему я использую text()? Поскольку html() только возвратит внутреннее HTML первого элемента результата.

1
ответ дан Peter Mortensen 7 November 2019 в 06:08
поделиться

Если Ваши элементы на том же уровне, чем-то вроде этого:

<h1 id="heading1">...</h1>
<ul>...</ul>
<p>...</p>
<ul>...</ul>
<p>...</p>
<h1 id="heading2" >...</h1>

таким образом, Ваш следующий элемент заголовка не является ребенком элемента на том же уровне как первый элемент заголовка. Можно попробовать этот код:

// This will get all the following siblings of <h1 id="heading1"> except those that are headings themselves
var elements = $('#heading1').nextAll().not("h1");
0
ответ дан Peter Mortensen 7 November 2019 в 06:08
поделиться
$('#secondSelector').prevAll('#firstSelector ~ *')
3
ответ дан 7 November 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: