Находим подходящего ребенка и удаляем его

  • Автор темы Елизавета Мехоношина
  • 48
  • Обновлено
  • 12, May 2024
  • #1
У меня есть код, который я редактирую, и у меня проблемы с перемещением по домену: JavaScript не моя сильная сторона.

Исходный код использует jquery. Код обрабатывает набор файлов и оборачивает ссылку вокруг информации о файле, если загрузка прошла успешно.

Один из «детей» представляет собой спиннер, показывающий, что что-то происходит.

Я хочу найти его и удалить.

Я почти уверен, что не хочу использовать .each(), но он позволяет мне перейти к счетчику - как лучше всего его проверить, когда я туда доберусь? Что-то еще использует $(data.context.children()[index]) — я только что взял это за отправную точку.

Вероятно, есть лучший.
 console.log($(data.context.children()[index]));

$(data.context.children()[index]).each(function () {

$(this).children().each(function () {

//console.log(this);

$(this).children().each(function () {

console.log(this);

console.log($.type(this));

//this.remove(":contains('owSpinner')");

});

});

});
Код (Javascript): Посмотреть в действии можно на сайте, загружайте что угодно, ничего не сломаете.

Елизавета Мехоношина


Рег
21 Jan, 2013

Тем
1

Постов
2

Баллов
12
  • 18, May 2024
  • #2
Пару месяцев назад пошел копать в поисках чего-нибудь, на что можно было бы наживиться, да?

... и что плохого в том, чтобы попытаться указать на проблемы и предложить лучший способ их решения?



Почему изображение в разметке должно быть статическим? Если это только сценарий, не следует ли его добавлять или удалять сценарием? Зачем использовать jquery или querySelectorAll для чего-то, к чему, вероятно, можно перейти через DOM и что, вероятно, должно быть не чем иным, как простой заменой классов?

Все, что он сделал, это сделал ответ более запутанным, трудным для понимания, трудным для работы и запутал его до такой степени, что это, вероятно, должно состоять из трех-восьми строк CSS и трех строк ванильного JS, над которыми ЛЮБОЙ квалифицирован для работы.

веб-сайт должен понимать, и в результате было добавлено несколько БЕСПЛАТНЫХ строк HTML, дюжина строк JavaScript И требование наличия какой-то библиотеки - ВСЕ, чтобы делать что-то как можно некорректнее. Но опять же, ДЖО ЗАПРЕЩАЕТ кому-либо СМЕТЬ указывать на это.

Вот что не так с вами, фанатами фреймворков, и с глупыми оправданиями, которые вы придумываете для их использования!
 

Бронислав1


Рег
17 Jul, 2015

Тем
0

Постов
2

Баллов
2
  • 21, May 2024
  • #3
Ваш последний вариант был наиболее близок к тому, что мне нужно, и был моей первоначальной отправной точкой, но я не смог заставить его работать.

У меня есть люди, загружающие до 25 изображений, и я хочу, чтобы они могли видеть, что они все еще работают, поскольку каждое изображение загружается, сканируется и текст сохраняется в базе данных.

Обработчик успеха/завершения последнего вызова ajax удаляет соответствующий счетчик.

Есть куча минимизированного кода, в который я не хочу углубляться, поэтому приходится довольствоваться обходом краев.
 

GolD2015


Рег
18 Dec, 2015

Тем
0

Постов
2

Баллов
2
  • 01, Jun 2024
  • #4
А пока я сижу здесь и думаю: «Какого черта прогулка по DOM имеет какое-то отношение ко всему этому?» - но я подозреваю, что со всеми этими бесконечными «DIV просто так», статическим стилем в разметке и т. д. и т. п., в нем есть значительное количество «неправильных» вещей.



Не могли бы вы просто применить счетчик в качестве фонового изображения позади всех этих бесконечных элементов, чтобы при загрузке и отображении изображения оно было скрыто ПОД ним? Это ВЫГЛЯДИТ как вещи, которые будут генерироваться на стороне клиента (или должны быть), так зачем вам каждый раз подключать их с помощью методологии querySelector.



как выглядит обработчик событий для завершения загрузки? Опять же, я подозреваю, что jQ создал еще один неумелый/невежественный раздутый беспорядок из чего-то простого.

хотя, не видя, что это на самом деле должно делать и/или больше кода, я даже не уверен, что это за беспорядок пытается сделать, я просто знаю, что если бы у меня была эта разметка и этот JavaScript, я бы выбросил их и начал все сначала...
БЕЗ идиотская, тупая, невежественная структура и ее умственно ослабленные, сломанные, раздутые методологии.
 

DaXaT


Рег
17 Dec, 2015

Тем
0

Постов
2

Баллов
2
  • 01, Jun 2024
  • #5
Если предположить, что класс owSpinner не поврежден, почему мой первый пример не сработает?
 var imgList = data.context.find('img');
imgList.remove();
Код (javascript): это удалит все его экземпляры.

По принципу работы jQuery каждое совпадение уже повторяется (нет необходимости в каждом()). Даже если вам нужно, чтобы imgList оставался нетронутым, а их список по какой-то причине находится за пределами .each(), вы все равно можете сделать это:
 $('.owSpinner').remove();
Код (Javascript):
 

ykpon


Рег
06 Feb, 2015

Тем
0

Постов
3

Баллов
3
  • 07, Jun 2024
  • #6
Это было бы слишком просто... Мне нужно удалить каждый экземпляр счетчика один за другим, и у меня нет ничего надежного, что можно было бы использовать в качестве идентификатора. Я закончил это, потому что счетчик — единственное изображение
 var imgList = data.context.find('img');

imgList.each(function(){

$(this).remove();

});
Код (Javascript):
 

SDSMakedonija


Рег
01 Jan, 2011

Тем
1

Постов
3

Баллов
13
  • 10, Jun 2024
  • #7
Это все, что делает код? По сути, вы создаете свой собственный метод обхода, в котором вы используете каждый(), чтобы пройти через все, а затем снова используете его для подэлементов, насколько я могу судить. Я имею в виду, если вы буквально просто пытаетесь удалить owSpinner элемент, вы можете просто сделать:
 $(data.context.children()[index]).find('.owSpinner').remove();
Код (javascript): если на странице их несколько, и вы просто хотите удалить тот, который находится внутри идентификатор="файлы" раздел, сделайте следующее:
 $('#files .owSpinner').remove();
Код (javascript): если для каждой загрузки существует уникальный счетчик, вы хотите удалить его только для одной загрузки, и data.context.children[индекс] это ссылка на файл, который вы хотите удалить, это должно работать:
 $('.owSpinner').remove();
Код (javascript): Возможно, я не понимаю, но похоже, что вы, возможно, слишком усложняете.
 

Dr.Matata


Рег
19 Dec, 2010

Тем
1

Постов
8

Баллов
18
Тем
49554
Комментарии
57426
Опыт
552966

Интересно