JQuery как получить доступ к тегу divs <p>и добавить его - PullRequest
1 голос
/ 09 сентября 2009

Здравствуйте, я что-то пробую ... Я читал документацию по обходу 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 + ",-");

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

Ответы [ 2 ]

5 голосов
/ 09 сентября 2009

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

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

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

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

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

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

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

0 голосов
/ 09 сентября 2009

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

$(this).parents("div.entry").find('p:first').append(element_value + ",-");
...