отображение определенного текста в tumblr [duplicate]

Я хотел бы ответить на 4 пункта в принятом ответе, надеюсь, кто-то может объяснить, почему я ошибаюсь.

  1. Почему скрывает зависимости в коде плохо? Уже есть десятки скрытых зависимостей (вызовы времени выполнения, вызовы OS API, глобальные вызовы функций) и односторонние зависимости легко найти (поиск экземпляра ()). «Сделать что-то глобальное, чтобы избежать его распространения, - это запах кода». Почему не происходит что-то вокруг, чтобы избежать лишнего запаха кода? Если вы передаете объект через 10 функций в стеке вызовов, чтобы избежать синглтона, это так здорово?
  2. Принцип единой ответственности: я думаю, что это немного расплывчато и зависит от вашего определения ответственности , Вопрос в том, почему добавление этой конкретной «ответственности» к классу имеет значение?
  3. Почему передача объекта в класс делает его более тесно связанным, чем с использованием этого объекта как одноэлемент изнутри класса?
  4. Почему он меняет, как долго длится состояние? Синглтоны могут быть созданы или уничтожены вручную, поэтому элемент управления все еще существует, и вы можете сделать его время жизни таким же, как и время жизни объекта, отличного от одного элемента.

Что касается модульных тестов:

  • не все классы должны быть подвергнуты блочному тестированию
  • не все классы, которые должны быть протестированы с помощью модуля, должны изменить реализацию singleton
  • , если они do нуждаются в модульном тестировании и необходимо изменить реализацию, легко изменить класс с использованием одноэлементного режима на то, чтобы один синглет был передан ему через инъекцию зависимостей.
20
задан Dušan Maďar 15 February 2016 в 10:34
поделиться

6 ответов

jQuery предоставляет несколько способов поиска определенных элементов:

$("#your_div").find(".your_things");        //Find everything inside
  //-or-
$("#your_div").filter(".your_things");      //Find only the top level
  //-or-
$("#your_div .your_things");                //Easiest
26
ответ дан meagar 21 August 2018 в 12:39
поделиться
  • 1
    (первая быстрее) – Amadan 11 May 2012 в 01:31
  • 2
    @Amadan. Почему вы так уверены? – gdoron 11 May 2012 в 01:39
  • 3
    Время jsperf !!!! – Derek 朕會功夫 11 May 2012 в 01:41
  • 4
    @gdoron: Была статья об этом. jQuery оптимизирован для поиска селекторов только с идентификатором с минимальной суматохой, прямо к getDocumentById. Все остальное передается Sizzle. Если браузер не имеет querySelector - и в некоторых случаях IIRC было показано, что Sizzle даже превосходит querySelector. Фактически, я сделал быстрый google сейчас, и есть много статей об этом; вот один из них . – Amadan 11 May 2012 в 01:47
28
ответ дан meagar 1 November 2018 в 06:25
поделиться
$('div-selector').find('the selector-you-are-looking-for');
0
ответ дан Chibuzo 21 August 2018 в 12:39
поделиться
var elements = $('div ' + yourSearch);
0
ответ дан Danilo Valente 21 August 2018 в 12:39
поделиться
var elems = jQuery(".foo", jQuery("#divYourWantToLimitTo") );  //BAD
//or
var elems = jQuery("#divYourWantToLimitTo .foo");  //Better
//or
var elems = jQuery("#divYourWantToLimitTo").find(".foo");  //BEST
7
ответ дан epascarello 21 August 2018 в 12:39
поделиться
  • 1
    Первый вариант неверен, jQuery не использует селектор строк в качестве контекста. проверьте документы. – gdoron 11 May 2012 в 01:40
  • 2
    @gdoron - Не могли бы вы объяснить, что, как мне кажется, это будет точно так же, как и третий вариант внутри? Я понимаю, что документы говорят «Элемент DOM, Документ или jQuery для использования в качестве контекста». и т. д., но похоже, что он работает нормально? – adeneo 11 May 2012 в 01:54
  • 3
    @adeneo Это было изменено ... – epascarello 11 May 2012 в 02:11
  • 4
    @epascarello - Я вижу это, просто задаюсь вопросом, почему, когда я использую его так, как это было все время, и всегда полагал, что все в порядке? – adeneo 11 May 2012 в 02:16
  • 5
    Первый и третий методы идентичны. Документы jquery docs говорят: Внутри контекст селектора реализован с помощью метода .find (), поэтому $ (& quot; span & quot ;, это) эквивалентно $ (this) .find (& quot; , span & quot;). – Quinn Comendant 25 November 2015 в 15:35

Старый вопрос, но все, похоже, пропустили селектор jQuery с расширенным охватом (используя требуемый объем, т. е. ваш селектор Div, в качестве второго параметра)

, например. use

var $matches = $('.adiv', '#mydiv');

Это более короткий эквивалент:

var $matches = $('#mydiv').find('.adiv');
10
ответ дан Gone Coding 21 August 2018 в 12:39
поделиться
Другие вопросы по тегам:

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