#javascript #jquery
#javascript #jquery
Вопрос:
Посмотрите на эту скрипку. У меня есть info
переменная, которую я могу легко добавить в 2 места. Но я бы хотел также легко удалить его из обоих мест, не делая чего-то более сложного, например $("p").remove()
Я знаю, что это кажется супер не сложным, но в производстве это сложнее. Я всегда работаю с info
var, поэтому было бы здорово, если бы был какой-то способ сказать info.removeInAllInstances()
или что-то в этом роде
Комментарии:
1. 1. пожалуйста, разместите свой код здесь, а не отправляйте ссылку (ссылка в порядке, просто добавьте код и здесь. 2. почему бы просто не присвоить этому
p
классу имя, а затем сослаться на него для удаления?2. Поскольку jQuery клонирует HTML-код внутри цикла по всем
.row
элементам,$info
он будет ссылаться только на последний добавленный элемент — вот почему вы видите текущее поведение. Чтобы сделать то, что вам требуется, вам нужно будет выбрать все содержимое в DOM послеappend()
завершения, т.Е.$('p').remove()
3. @RoryMcCrossan чтобы уточнить, вы хотите сказать, что когда я это делаю
$(".row").append(info)
,info
var клонируется в каждом.append()
, это правильно? и послеinfo
этого ссылается только на последний элемент?4. @Kinglish Я могу, я просто специально пытаюсь использовать
info
переменную
Ответ №1:
Я не мастер в jQuery, но, по-видимому, remove() удаляет все экземпляры чего-либо. Вы можете отфильтровать по определенному классу и удалить абзацы.
Посмотрите этот пример:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>remove demo</title>
<style>
p {
background: yellow;
margin: 6px 0;
}
</style>
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
<p>Hello</p>
how are
<p>you?</p>
<button>Call remove() on paragraphs</button>
<script>
$( "button" ).click(function() {
$( "p" ).remove();
});
</script>
</body>
</html>
Я получаю это на https://api.jquery.com/remove /.
Комментарии:
1. скрипка, которую я использовал
.remove()
, и она не работала =/2. попробуйте удалить по имени класса, я сделал это и работает info = $ («<p> Введите важную информацию </p>») info2 = $ («<p> Введите важную информацию </p>») // добавить поле ввода как в корзину, так и в каталог $ («.row»).append(info) $(«.row»).append(info2) // удалить ввод в каталоге, должен автоматически удаляться в корзине, но не удаляет, только удаляет в каталоге $ («p»).remove() попробуйте сделать это с помощью classname,в этом случае я использую tagname . послушайте, я не специалист в jquery, поэтому я не могу помочь вам наилучшим образом, ха-ха
3. да, я понимаю, извините, я только что упомянул в вопросе, что я пытаюсь конкретно использовать созданный мной JS
info
var, а не искать по классу. все в порядке, я не думаю, что это возможно