JQuery如何访问divs <p>标签并附加它</p>

时间:2009-09-09 16:00:48

标签: jquery parent closest

你好我正在尝试的东西..我正在阅读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要在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 个答案:

答案 0 :(得分:5)

如果您阅读的是最近的()文档,您会看到它只向上看,而不是侧向:

  

获取一组元素,其中包含与指定选择器匹配的最接近的父元素,包括起始元素。

您可以执行此操作以从输入中找到之前的<p>

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

或更明确:

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

然后,这将取决于输入恰好在<p>的哪一侧。

答案 1 :(得分:0)

试试这个:

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