Для вашего кода как указано, объект $details
не определен, а $listContent
не используется вообще. Если $details
установлен перед циклом each
, то значения, полученные через $details.find()
, и полученные значения в и dislike
будут одинаковыми на каждой итерации, поэтому вы должны установить эти переменные перед циклом. Но возможно, это потому, что вы вырезали часть своего реального кода, чтобы сделать вопрос короче? Я предполагаю, что это так и оставить эту часть как есть.
Итак, предполагая свое намерение, чтобы получить элемент HTML в виде строки и удалите "<br>"
из строки перед передачей его в какой-то другой функции, то, что вы уже делаете работает нормально. Вы можете привести в порядок его немного:
$("#div").find(".list").each(function(){
var $listContent = $(this).closest(".listContent"),
like = $details.find(".like").html().replace(/<br>/gi,""),
dislike = $details.find(".dislike").html().replace(/<br>/gi,"");
yourOtherMethod(like, dislike);
});
Вы увидите, что я использовал только один var
заявление, с отдельными объявлениями переменных, разделенных запятыми. И по соглашению имя переменной, начинающееся со знака доллара, обычно указывает, что переменная ссылается на объект jQuery, поэтому я удалил знаки доллара с like
и dislike
, так как они содержат строки (это будет работать в любом случае, вы понимаете, но в соответствии с конвенцией делает ваш код более четким).
Сказав, что все это, в зависимости от того, что делает ваш другой метод, может быть более подходящим для клонирования элементов и прохождения через клон, а не передачи строки html, но не зная, что вы пытаетесь сделать там Я не могу советовать дальше.
Что значит, удаляет фактическую метку br? Вы вызывали .delete() или что-то вроде $ like? –
Да, жаль, что я присваивал следующие значения переменной «var x = $ ('br', $ like) .remove()' –
Не удивительно. Вы будете работать над фактическим деревом DOM. Вам нужно будет клонировать результаты поиска() и удалять
, если вы хотите сохранить исходное дерево. –