JQuery, как получить доступ к divs < p > пометить и добавить его

StackOverflow https://stackoverflow.com/questions/1400569

  •  05-07-2019
  •  | 
  •  

Вопрос

Здравствуйте, я кое-что пробовал .. Я читал документацию по обходу Jquery на некоторых форумах, на этих сайтах ранее задавались вопросы, относящиеся к этой теме .. Никто на самом деле не отвечает на мой вопрос, поэтому я спрошу вместо этого ... вот сделка

  <div class="entry">
week
<span>some text</span>
<p>DKK</p>
<input type="radio" name="red<% Response.Write(counter); %>" id="radio2" value="75" />

</div>

Итак, я использовал цикл while, чтобы создать их несколько, поэтому мне не нужно вручную копировать и вставлять их ... asp генерирует их ... теперь вы видите раздел p, в котором написано DKK .. теперь для меня чтобы не писать все вручную, я бы хотел, чтобы каждый div делился на p, добавляя значение input внутри этого div, теперь вот что я сделал с Jquery

$(document).ready(function() {
     $("input").each(function () {
                 var element_value = $(this).val();
                 $(this).closest("p").append(element_value + ",-");
                  }); 
 }); 

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

<p>DKK 75,-<p>

поскольку входное значение равно 75 и оно включено в функцию добавления, - добавьте также, что этот код не работает, однако, если я добавлю

$(this).parents("div.entry").append(element_value + ",-");

instead of

$(this).closest("p").append(element_value + ",-");

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

Это было полезно?

Решение

Если вы прочитаете документацию для closest (), вы увидите, что она смотрит только вверх, а не в сторону:

  

Получить набор элементов, содержащий ближайший родительский элемент, соответствующий указанному селектору, включая начальный элемент.

Вы можете сделать это, чтобы найти предыдущий < p > из ввода:

$(this).prev("p").append(element_value + ",-");

Или более явно:

$(this).closest("div.entry").find("p").append(element_value + ",-");

Что не будет зависеть от того, с какой стороны < p > вход будет включен.

Другие советы

Попробуйте это:

$(this).parents("div.entry").find('p:first').append(element_value + ",-");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top