Я недавно был присвоен очень небольшой, но сложная задача в JQuery, требование было довольно просто, учитывая следующую HTML:методы JQuery Vs JQuery селекторы
<div>
<span id="myid2151511" class="myclass23462362">....foobar....</span>
<span id="myid2151512" class="myclass23462362">....YoLO....</span>
<span id="myid2151513" class="myclass23462362">....lalal....</span>
<span id="myid2151514" class="myclass23462362">....foobar....</span>
</div>
Что я должен сделать я рекурсивно пройти через все пролет под div
, с определенным идентификатором и проверьте значения, содержащиеся в пролетах является foobar
, так что я могу с помощью следующего кода JQuery:
$(function(){
$('div [id^="myid"]:contains("foobar"):last').css({'background' : 'rgb(227, 216, 22)' })
});
Его довольно сложный фрагмент кода сам по себе, но документация jQuery сделала это для меня как для понимания кода.
В настоящее время я комфортно написание кода, как это в JQuery:
$('some-Element').somemethod().anothermethod().yetanothermethod();
Каждая функция возвращает значение в указанное заявление Jquery, поэтому способность цепи становится реальностью.
но когда я вижу код как так.
$('div [id^="myid"]:contains("foobar"):last').css({'background' : 'rgb(227, 216, 22)' });
Я бросил немного с крючка (хотя я успел написать эту строку сам), обратите внимание, как много фильтрации осуществляется с помощью селектора :last
и :contains
, мне они, кажется, работает гораздо как какой-то метод jQuery. Поэтому мой вопрос: как эти селектора в jQuery работают по сравнению с методами jQuery?
Если кто-нибудь может объяснить или дать мне смутное представление, это будет фантастично.
EDIT ::
хорошо прояснить мой вопрос в одной строке, мне $(".someClass").eq('10');
имеет смысл, но как-то $(".someClass:eq(10)")
does't, я имею в виду это работает, но как на земле, она реализуется внутри? (Я написал это редактирование после прочтения ответов ниже, и этот вопрос на этот вопрос был полностью отреагирован, но это изменение просто для того, чтобы прояснить мой вопрос.).
Вы понимаете, что для селекторов jQuery использует синтаксис селектора CSS3 (с несколькими расширениями, добавленными в него)? Таким образом, основной синтаксис не является чем-то придуманным jQuery. – jfriend00
Когда вы спрашиваете «как эти селекторы в jQuery работают по сравнению с методами jQuery», трудно понять, какой ответ вы хотите или что вы действительно спрашиваете. Возможно, вы могли бы уточнить свой вопрос. Вот статья, которая объясняет общий синтаксис селектора CSS3: http://www.456bereastreet.com/archive/200601/css_3_selectors_explained/ – jfriend00
@ jfriend00, Спасибо, что принесли этот критический момент моему уведомлению, и я не знал об этом , вы частично ответили на мой вопрос. –